SGU 107
题意:输入一个N,表示N位数字里面有多少个的平方数的结尾9位是987654321
收获:打表,你发现相同位数的数相乘结果的最后几位,就和那两个相乘的数最后几位相乘一样,比如3416*8516 = 29090656,它的最后两位就和16*16=256的最后两位一样 为56,那么你发现987654321位9位,而且你预处理出的那8个答案就是9位,你就看d=n-9为多少位,那么就是9*8*(d位10)相乘,一个for就行了
#include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<b;++i) typedef long long ll; int main(){ //for(ll i =2;i<=1e9;++i) if(i*i%mod==x) cout<<i<<" "; int n; scanf("%d",&n); if(n<9) return puts("0"),0; if(n==9) return printf("8"),0; int d = n - 9; printf("72"); rep(i,1,d) printf("0"); return 0; }