c - 在C中查找具有唯一数字的数字

标签 c arrays

我必须编写一个程序来找到每个数字(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/

相关文章:

c - 访问 main 之后定义的函数

c - 为什么子进程 "read"函数不返回(我觉得会返回-1),子进程 'printf'函数不起作用

c - 按名称或年份对飓风进行排序的 C 程序

c - 递归结构的大小是多少?

c - 分配过多内存的性能损失(?)

java - 无法转换为 java.util.ArrayList

JavaScript : loop in conditional based on array

c - 返回一维数组并将结果写入文本文件的函数

arrays - 为什么这些分配数组/列表的不同方法会产生不同的值?

javascript - 使用 javascript .filter() 删除重复的对象