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

相关文章:

  • 2021-08-31
  • 2021-09-24
  • 2021-09-03
  • 2021-09-26
  • 2021-10-21
  • 2021-09-29
  • 2021-05-16
  • 2022-03-02
猜你喜欢
  • 2021-06-24
  • 2021-09-20
  • 2021-12-23
  • 2022-02-27
  • 2021-08-25
  • 2021-07-10
  • 2021-11-10
相关资源
相似解决方案