我必须编写一个程序来找到每个数字(0 除外),这些数字可以被 2-9 的数字因式分解。 例如,第一个这样的数字将是数字 2520,因为它可以除以从 2 到 9 的每个数字。 它还必须是一个仅包含一种类型的数字的数字(一个数字中没有多个数字)。因此,例如 2520 将不满足此要求,因为有两个相同的数字 (2)。满足这两个要求的数字示例是数字 7560。这就是我不知道该怎么做的要点。我正在考虑将数组中的值转换为字符串,然后将此字符串放入另一个数组中,这样每个数字都将由一个数组条目表示。
#include <stdio.h>
#include <math.h>
int main() {
int i, n, x, flag, y = 0;
scanf("%d", &n);
double z = pow(10, n) - 1;
int array[(int)z];
for (i = 0; i <= z; i++) {
flag = 0;
array[i] = i;
if (i > 0) {
for (x = 2; x <= 9; x++) {
if (array[i] % x != 0) {
flag = 1;
}
}
if (flag == 0) {
y = 1;
printf("%d\n", array[i]);
}
}
}
if (y == 0) {
printf("not exist");
}
return 0;
}
最佳答案
这应该给你一个基础:
#include <stdio.h>
#include <string.h>
int main()
{
char snumber[20];
int number = 11235;
printf("Number = %d\n\n", number);
sprintf(snumber, "%d", number);
int histogram[10] = { 0 };
int len = strlen(snumber);
for (int i = 0; i < len; i++)
{
histogram[snumber[i] - '0']++;
}
for (int i = 0; i < 10; i++)
{
if (histogram[i] != 0)
printf("%d occurs %d times\n", i, histogram[i]);
}
}
输出:
Number = 11235
1 occurs 2 times
2 occurs 1 times
3 occurs 1 times
5 occurs 1 times
关于c - 在C中查找具有唯一数字的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051727/