我正在输入一个数字 n,其中 1<=n<=10^5。我需要一个长度为 n 的数字。所以我使用 pow(10,n-1) 但是当 n=100000 时它不起作用。错误是什么?
编辑:它的 codeforces div2 第 152 轮问题 B。
Chilly Willy 想要找到长度为 n 的最小数,这样它就可以同时被所有 Willy 已经知道的数(2、3、5 和 7)整除。帮助他。
数字的长度是十进制表示中不带前导零的位数。
输入 单个输入行包含单个整数 n (1 ≤ n ≤ 10^5)。
我的代码可以工作到 n=19。它在预测试 9 中失败。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int f=0;
unsigned long long n;unsigned long long out;
cin>>n;
unsigned long long num=1;unsigned long long lim=10;
for(unsigned long long z=0;z<n;z++)
{num=num*10;lim=lim*10;}num=num/10;lim=lim/10;
for(;num<lim;num++)
{
if((num%2==0)&&(num%3==0)&&(num%5==0)&&(num%7==0)){f=1;out=num;break;}
}
if(f==1){cout<<out;}
else if(f==0){cout<<"-1";}
return 0;
}