sgu 107 (简单数论)
给你一个n代表数字的位数,问你n位的数有多少的平方以987654321结尾。
一个数的平方的最后n位只与原数的最后n位有关。所以先打表出sqrt(987654321)-->999999999的个数分布。
1 // File Name: 107.cpp 2 // Author: Missa 3 // Created Time: 2013/2/24 星期日 0:11:23 4 5 #include<iostream> 6 #include<cstdio> 7 #include<cstring> 8 #include<algorithm> 9 #include<cmath> 10 #include<queue> 11 #include<stack> 12 #include<string> 13 #include<vector> 14 #include<cstdlib> 15 #include<map> 16 #include<set> 17 using namespace std; 18 #define CL(x,v) memset(x,v,sizeof(x)); 19 #define R(i,st,en) for(int i=st;i<en;i++) 20 21 int n; 22 23 int main() 24 { 25 //for(long long i=sqrt(987654321.0);i<=999999999;++i) 26 // if( i*i%1000000000 == 987654321 ) 27 // printf("%d\n",i); 28 29 while(~scanf("%d",&n)) 30 { 31 if(n<=8) puts("0"); 32 else if(n==9) puts("8"); 33 else 34 { 35 printf("72"); 36 for(int i=10;i<n;i++) 37 printf("0"); 38 puts(""); 39 } 40 } 41 return 0; 42 }