c语言解洛谷p1046
时间: 2023-12-02 14:39:27 浏览: 37
洛谷p1046是一道关于分解位数的题目,要求找出10000到30000之间所有满足条件的五位数,条件是这些五位数的三个子数sub1、sub2、sub3都可被输入的正整数K整除。下面是C语言的AC代码,可以帮助你更好地理解题目的解法。
AC代码:
```c
#include <stdio.h>
int main() {
int i, k, count = 0;
int part1, part2, part3;
part1 = part2 = part3 = 0;
scanf("%d", &k);
for (i = 10000; i <= 30000; i++) {
part1 = (i / 100);
part2 = (i / 10) % 1000;
part3 = i % 1000;
if ((part1 % k == 0) && (part2 % k == 0) && (part3 % k == 0)) {
printf("%d\n", i);
count++;
}
}
if (count == 0) {
printf("No\n");
}
return 0;
}
```
输入格式:
输入一个正整数K。
输出格式:
输出10000到30000之间所有满足条件的五位数,每行一个数,从小到大输出。如果无解,则输出“No”。
相关问题
c语言洛谷p1059
洛谷p1059是一个关于桶排的C语言题目。下面是一个简单的桶排的示例代码:
```c
#include <stdio.h>
int main(void) {
int i, j, n, t, count, book[1001];
// 初始化桶数组
for (i = 0; i <= 1000; i++) {
book[i] = 0;
}
// 输入n和n个数,并统计每个数的出现次数
scanf("%d", &n);
for (i = 1; i <= n; i++) {
scanf("%d", &t);
book[t]++;
}
count = 0;
// 统计不同的数的个数
for (i = 0; i <= 1000; i++) {
if (book[i] > 0) {
count++;
}
}
// 输出不同的数的个数
printf("%d\n", count);
// 输出不同的数
for (i = 0; i <= 1000; i++) {
if (book[i] > 0) {
printf("%d ", i);
}
}
getchar();
getchar();
return 0;
}
```
这段代码首先初始化了一个大小为1001的桶数组,然后通过循环输入n和n个数,并统计每个数的出现次数。接着,通过遍历桶数组,统计不同的数的个数,并输出。最后,再次遍历桶数组,输出不同的数。
c语言洛谷p1980
洛谷P1980是一道C语言题目,题目描述为:输入两个整数n和x,输出1到n中x出现的次数。其中n和x的范围均为[1, 10000]。这道题目可以使用循环和逐位拆分的方法来解决。在给出的三个引用中,分别给出了三种不同的代码实现方法。其中引用和引用的代码实现方法比较相似,都是使用了循环和逐位拆分的方法来解决问题。而引用的代码实现方法则比较简单,只是通过判断整数的个位和十位是否等于x来计算x出现的次数。在实际编写代码时,我们可以根据自己的习惯和编程能力选择不同的实现方法。