davidmou 发表于 2023-12-7 16:53:08

能被7整除,而且至少有一位数字是5的所有数字

输出1到9999中能被7整除,而且至少有一位数字是5的所有数字,用C来解答

FishC_GPT 发表于 2023-12-7 16:54:33

好的,我们可以使用循环来遍历1到9999中的所有数字,然后判断每个数字是否满足条件。具体的实现代码如下:

#include <stdio.h>

int main() {
    for (int i = 1; i <= 9999; i++) {
      // 判断数字是否能被7整除
      if (i % 7 == 0) {
            // 将数字转换为字符串,方便判断是否包含数字5
            char str;
            sprintf(str, "%d", i);
            
            // 判断数字是否包含数字5
            int containsFive = 0;
            for (int j = 0; str != '\0'; j++) {
                if (str == '5') {
                  containsFive = 1;
                  break;
                }
            }
            
            // 输出满足条件的数字
            if (containsFive) {
                printf("%d\n", i);
            }
      }
    }
   
    return 0;
}

上述代码的思路是从1到9999逐个判断,首先判断数字能否被7整除,然后将该数字转换成字符串,并判断字符串中是否包含数字5。如果满足这两个条件,则输出该数字。运行该代码,即可得到输出结果。

需要注意的是,该代码中使用了sprintf函数将数字转换为字符串,所以需要包含stdio.h头文件。另外,输出的结果可能比较多,如果想要限制输出的范围,可以调整for循环中的起始值和结束值。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

jackz007 发表于 2023-12-7 17:14:18

#include <stdio.h>
int main(void)
{
      int c , i , k                                             ;
      for(i = 7 ; i < 10000 ; i += 7) {
                for(k = i ; k ; k /= 10) {
                        if(k % 10 == 5) {
                              if(c) {
                                        if(! (c % 10)) printf("\n") ;
                                        else printf(" , ")          ;
                              }
                              printf("%4d" , i)                   ;
                              c ++                              ;
                              break                               ;
                        }
                }
      }
}
页: [1]
查看完整版本: 能被7整除,而且至少有一位数字是5的所有数字