SGU 107 987654321 problem(打表)

49 篇文章 0 订阅

Description
给出一整数n,问n位的数字中平方后最后九位是987654321的数有多少个
Input
一个整数n表示数字位数(1<=n<=10^6)
Output
n位且平方后最后九位是987654321的数的个数
Sample Input
8
Sample Output
0
Solution
由用例可知八位数没有满足条件的数字,故只需要考虑九位数中满足条件的数有多少即可,这个直接打个表可知一共有8个,故如果n<=8输出0,n=9输出8,n>9输出72,后面输出n-10个0(数字第一位不能为0,除后九位是满足调价的8个数之外其余都可以从0取到10)
Code

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
    //ll mod=1000000000ll;
    //for(ll i=1;i<=1e9;i++)
    //  if(i*i%mod==987654321ll)
    //      printf("%lld\n",i);
    //111111111
    //119357639
    //380642361
    //388888889
    //611111111
    //619357639
    //880642361
    //888888889
    int n;
    while(~scanf("%d",&n))
    {
        if(n<=8)printf("0\n");
        else if(n==9)printf("8\n");
        else
        {
            printf("72");
            for(int i=0;i<n-10;i++)printf("0");
            printf("\n");
        }
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值