题解
2024-04-26 19:04:50
发布于:广东
32阅读
0回复
0点赞
省流:输出No就行
但还是发一个正经的吧(
这个比一个一个遍历要强
#include <iostream>
#include <cstdio>
using namespace std;
int a[100005];
int main(){
int n;
cin >> n;
bool flag = 0;
for(int i = n; i < 300; i += n){//这样保证了前3位一定被n整除
if(i < 100) continue;//不是五位数要扣税
int x = i % 100;
for(int j = 0; j <= 9; j++){//逐位遍历
if((x * 10 + j) % n == 0){
int y = i % 10 * 10 + j;
for(int k = 0; k <= 9; k++){
if((y * 10 + k) % n == 0){
flag = 1;
printf("%d%d%d\n", i, j, k);
}
}
}
}
}if(300 % n == 0){//30000特判
flag = 1;
cout << 30000;
}if(!flag) cout << "No";
return 0;
}
时间复杂度:
当n < 300时:
当n >= 300时:
全部评论 1
9
2024-04-26 来自 浙江
0
有帮助,赞一个