26
#include
#include
using namespace std;
//转换成字符串 查找,利用现成的库函数 =-=
int main()
{
long n;
while(cin>>n){
int ans = 2;// 0, 1也是
for(long i = 3; i<=n; i++){
long n2 = i*i;
string s1 = to_string(i);
string s2 = to_string(n2);
int pos = s2.size()- s1.size();
if(s2.find(s1,pos) != -1)
ans++;
}
cout<
}
return 0;
}
编辑于 2016-07-06 15:45:52
回复(17)
14
#include
using namespace std;
int main() {
int n;
while (cin >> n) {
int base = 10, count = 0;
for (int i = 0; i <= n; i++) {
if (i == base) base *= 10;
if (i*i%base == i)
count++;
}
cout << count << endl;
}
return 0;
}
发表于 2017-08-03 22:55:53
回复(4)
20
python 常规的解法: while True:
try:
a, res = int(input()), 0
for i in range(0, a + 1):
if str(i ** 2).endswith(str(i)):
res += 1
print(res)
except:
break
使用函数式编程: print len(filter(lambda x: str(x ** 2).endswith(str(x)), range(input())))
上面这是python 2.7的写法,在python3中,这样写会报错,要先将filter转为list: print(len(list(filter(lambda c:str(c**2).endswith(str(c)),range(int(input()))))))
编辑于 2018-09-29 18:14:37
回复(11)
8
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int n = sc.nextInt();
int cnt = 0;
for(int i=0; i<=n; i++) {
long end = i*i;
if(String.valueOf(end).endsWith(String.valueOf(i))) {
cnt ++;
}
}
System.out.println(cnt);
}
}
}
发表于 2018-10-09 19:33:27
回复(1)
7
#include
#include
using namespace std;
int main(){
int n;
while(cin>>n){
int cnt=0;
string pow;
string str;
for(int val=0;val<=n;++val){
pow=to_string(val*