今日SGU 5.3

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;
}
View Code

猜你喜欢

转载自www.cnblogs.com/chinacwj/p/8987073.html
5.3
sgu