P1151 子数整数-C语言
1、题目
2、解题过程
(1)第一次 没有通过,超级离谱,居然是因为NO的O要小写
结果:
代码:
//洛谷 P1151 子数整数
#include <stdio.h>
#define MIN 10000//最小值
#define MAX 30000//最大值
int main() {
int k;//正整数 0<K<1000
int sub1,sub2,sub3;
int i;
int counter=0;//计数器 解决最后一行换行问题
int temp[MAX];//存放结果
scanf("%d", &k);
for (i = MIN; i <= MAX; i++) {
sub1 = i / 100;
if ((sub1 % k) != 0) {
continue;
}
sub2 = (i % 10000) / 10;
if ((sub2 % k) != 0) {
continue;
}
sub3 = i % 1000;
if ((sub3 % k) != 0) {
continue;
}
temp[counter] = i;
counter++;
/*
if ((sub1 % k == 0) & (sub2 % k == 0) & (sub3 % k == 0)) {
//printf("%d", i);
temp[counter] = i;
counter++;
}*/
}
if (counter == 0) {
printf("NO");
return 0;
}
for (i = 0; i < counter; i++) {
printf("%d", temp[i]);
if (i < counter-1) {
printf("\n");
}
}
return 0;
}
(2)第二次
结果:
代码:
//洛谷 P1151 子数整数
#include <stdio.h>
#define MIN 10000//最小值
#define MAX 30000//最大值
int main() {
int k;//正整数 0<K<1000
int sub1,sub2,sub3;
int a, b, c, d, e;
int i;
int counter=0;//计数器
scanf("%d", &k);
for (i = MIN; i <= MAX; i++) {
sub1 = i / 100 ;
sub2 = (i % 10000) / 10 ;
sub3 = i % 1000 ;
if ((sub1%k == 0) & (sub2%k == 0) & (sub3%k == 0)) {
counter++;
printf("%d\n", i);
}
}
if (counter == 0) {
printf("No");
}
return 0;
}