鱼C论坛

 找回密码
 立即注册
查看: 1693|回复: 11

[已解决]由1-5,五个数字组成的五位数,且不重复。求此类五位数能被7整除,并求其中最小五位数

[复制链接]
发表于 2021-11-22 21:59:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
main()
{
        int a,b,c,d,e,i,n=0,g[s],max;
        for(a=1;a<=5;a++)
        {
                for(b=1;b<=5;b++)
                {
                        for(c=1;c<=5;c++)
                        {
                                for(d=1;d<=5;d++)
                                {
                                        for(e=1;e<=5;e++)
                                        {
                                                i=a*10000+b*1000+c*100+d*10+e;
                                                if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e||i%7==0 )
                                                        continue;
                                                        printf("%d\n",i);
                                                        s=n;
                                                        g[s]=i;
                                                        n++;

                                        }
                                }
                        }
                }
        }
max=g[0];
for(i=1;i<=s;i++)
{
        if(g[s]>max)
                max=g[s];
}
printf("%d",max);
}

最佳答案
2021-11-23 00:12:48
本帖最后由 jackz007 于 2021-11-23 00:14 编辑

  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         int a , b , c , d , e , i , min = 0                                                                                     ;
  5.         for(a = 1 ; a <= 5 ; a ++) {
  6.                 for(b = 1 ; b <= 5 ; b ++) {
  7.                         if(b != a) {
  8.                                 for(c = 1 ; c <= 5 ; c ++) {
  9.                                         if(c != a && c != b) {
  10.                                                 for(d = 1 ; d <= 5 ; d ++) {
  11.                                                         if(d != a && d != b && d != c) {
  12.                                                                 for(e = 1 ; e <= 5 ; e ++) {
  13.                                                                         if(e != a && e != b && e != c && e != d) {
  14.                                                                                 i = a * 10000 + b * 1000 + c * 100 + d * 10 + e ;
  15.                                                                                 if(! (i % 7)) {
  16.                                                                                         if(min < 10000) min = i                 ;
  17.                                                                                         else if(i < min) min = i                ;
  18.                                                                                 }
  19.                                                                                 printf("%d\n" , i)                              ;
  20.                                                                         }
  21.                                                                 }
  22.                                                         }
  23.                                                 }
  24.                                         }
  25.                                 }
  26.                         }
  27.                 }
  28.         }
  29.         printf("min = %d\n" , min)                                                                                             ;
  30. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 12345
  4. 12354
  5. 12435
  6. 12453
  7. 12534
  8. 12543
  9. 13245
  10. 13254
  11. 13425
  12. 13452
  13. 13524
  14. 13542
  15. 14235
  16. 14253
  17. 14325
  18. 14352
  19. 14523
  20. 14532
  21. 15234
  22. 15243
  23. 15324
  24. 15342
  25. 15423
  26. 15432
  27. 21345
  28. 21354
  29. 21435
  30. 21453
  31. 21534
  32. 21543
  33. 23145
  34. 23154
  35. 23415
  36. 23451
  37. 23514
  38. 23541
  39. 24135
  40. 24153
  41. 24315
  42. 24351
  43. 24513
  44. 24531
  45. 25134
  46. 25143
  47. 25314
  48. 25341
  49. 25413
  50. 25431
  51. 31245
  52. 31254
  53. 31425
  54. 31452
  55. 31524
  56. 31542
  57. 32145
  58. 32154
  59. 32415
  60. 32451
  61. 32514
  62. 32541
  63. 34125
  64. 34152
  65. 34215
  66. 34251
  67. 34512
  68. 34521
  69. 35124
  70. 35142
  71. 35214
  72. 35241
  73. 35412
  74. 35421
  75. 41235
  76. 41253
  77. 41325
  78. 41352
  79. 41523
  80. 41532
  81. 42135
  82. 42153
  83. 42315
  84. 42351
  85. 42513
  86. 42531
  87. 43125
  88. 43152
  89. 43215
  90. 43251
  91. 43512
  92. 43521
  93. 45123
  94. 45132
  95. 45213
  96. 45231
  97. 45312
  98. 45321
  99. 51234
  100. 51243
  101. 51324
  102. 51342
  103. 51423
  104. 51432
  105. 52134
  106. 52143
  107. 52314
  108. 52341
  109. 52413
  110. 52431
  111. 53124
  112. 53142
  113. 53214
  114. 53241
  115. 53412
  116. 53421
  117. 54123
  118. 54132
  119. 54213
  120. 54231
  121. 54312
  122. 54321
  123. min = 12453

  124. D:\00.Excise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-22 22:42:01 | 显示全部楼层
  1. #include<stdio.h>

  2. int main(void)
  3. {
  4.         int d[5] = {1 , 2 , 3 , 4 , 5} , c , i , j , k , n , t , min     ;
  5.         for(k = n = 0 ; k < 5 ; k ++) n = n * 10 + d[k]                  ;
  6.         printf("%d\n" , n)                                               ;
  7.         for(c = 1 , i = 0 ; i < 4 ; i ++) {
  8.                 for(j = i + 1 ; j && d[j] > d[j - 1] ; j --) {
  9.                         t = d[j - 1]                                     ;
  10.                         d[j - 1] = d[j]                                  ;
  11.                         d[j] = t                                         ;
  12.                         for(k = n = 0 ; k < 5 ; k ++) n = n * 10 + d[k]  ;
  13.                         printf("%d\n" , n)                               ;
  14.                         c ++                                             ;
  15.                 }
  16.         }
  17. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 12345
  4. 21345
  5. 23145
  6. 32145
  7. 32415
  8. 34215
  9. 43215
  10. 43251
  11. 43521
  12. 45321
  13. 54321

  14. D:\00.Excise\C>
复制代码

        可是,这 11 个 5 位数没有 1 个可以被 7 整除!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 23:25:59 | 显示全部楼层
jackz007 发表于 2021-11-22 22:42
编译、运行实况:

        可是,这 11 个 5 位数没有 1 个可以被 7 整除!

脑瓜子嗡嗡的,大佬能否解决下,如何把按照程序求出的许多数,赋值进一个数组,并编写求最小值的这一步骤,与上面求被7整除的数,合并起来,我主要后面一步,不行,会出错,前面一步求被七整除的数倒是懂。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 23:30:32 | 显示全部楼层
小黄练编程 发表于 2021-11-22 23:25
脑瓜子嗡嗡的,大佬能否解决下,如何把按照程序求出的许多数,赋值进一个数组,并编写求最小值的这一步骤 ...


         问题是你没有把要求谈清楚,不知道应该干什么,比如,这 11 个互不相同的 5 位数已经有了,那个最小指的是什么?能被 7 整除又指的是什么,把话说完整。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 23:42:38 | 显示全部楼层
jackz007 发表于 2021-11-22 23:30
问题是你没有把要求谈清楚,不知道应该干什么,比如,这 11 个互不相同的 5 位数已经有了,那 ...

能被7整除指:求出来的这些由1-5,五个数字组成的不重复的五位数,中,能被7整除的那部分,最小值指:那部分中最小值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 23:47:20 | 显示全部楼层
小黄练编程 发表于 2021-11-22 23:42
能被7整除指:求出来的这些由1-5,五个数字组成的不重复的五位数,中,能被7整除的那部分,最小值指:那 ...

        我在你的其它帖子里已经告诉过你了,总共可以组合出 11 个 5 位数,但是,这些数里面没有一个可以被 7 整除,不信的话,你可以列举出来任何一个看看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 23:52:33 | 显示全部楼层
jackz007 发表于 2021-11-22 23:47
我在你的其它帖子里已经告诉过你了,总共可以组合出 11 个 5 位数,但是,这些数里面没有一个可 ...

意思是没有能被7整除的无重复的五位数?
我这题目没错啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 23:55:55 | 显示全部楼层
小黄练编程 发表于 2021-11-22 23:52
意思是没有能被7整除的无重复的五位数?
我这题目没错啊!

       11 个 5 位数就在 2 楼,你试试看,哪一个能被 7 整除?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 23:58:32 | 显示全部楼层
jackz007 发表于 2021-11-22 23:55
11 个 5 位数就在 2 楼,你试试看,哪一个能被 7 整除?

#include<stdio.h>
main()
{
        int a,b,c,d,e,i;
        for(a=1;a<=5;a++)
        {
                for(b=1;b<=5;b++)
                {
                        for(c=1;c<=5;c++)
                        {
                                for(d=1;d<=5;d++)
                                {
                                        for(e=1;e<=5;e++)
                                        {
                                                i=a*10000+b*1000+c*100+d*10+e;
                                                if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e||i%7==0 )
                                                        continue;
                                                        printf("%d\n",i);
                                        }
                                }
                        }
                }
        }
}




咋我这这整出来的无重复五位数多了好多。脑瓜子翁的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 00:05:48 | 显示全部楼层
jackz007 发表于 2021-11-22 23:55
11 个 5 位数就在 2 楼,你试试看,哪一个能被 7 整除?

#include<stdio.h>
main()
{
        int a,b,c,d,e,i;
        for(a=1;a<=5;a++)
        {
                for(b=1;b<=5;b++)
                {
                        for(c=1;c<=5;c++)
                        {
                                for(d=1;d<=5;d++)
                                {
                                        for(e=1;e<=5;e++)
                                        {
                                                i=a*10000+b*1000+c*100+d*10+e;
                                                if(a==b||a==c||a==d||a==e||b==c||b==d||b==e||c==d||c==e||d==e||i%7!=0 )
                                                        continue;
                                                        printf("%d\n",i);
                                        }
                                }
                        }
                }
        }
}


之前除了问题,我把i%7==0改成i%7==0了,这求出十五位数, 例子12453能被7整除。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 00:07:49 | 显示全部楼层
jackz007 发表于 2021-11-22 23:55
11 个 5 位数就在 2 楼,你试试看,哪一个能被 7 整除?

大哥晚安哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-23 00:12:48 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-11-23 00:14 编辑

  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         int a , b , c , d , e , i , min = 0                                                                                     ;
  5.         for(a = 1 ; a <= 5 ; a ++) {
  6.                 for(b = 1 ; b <= 5 ; b ++) {
  7.                         if(b != a) {
  8.                                 for(c = 1 ; c <= 5 ; c ++) {
  9.                                         if(c != a && c != b) {
  10.                                                 for(d = 1 ; d <= 5 ; d ++) {
  11.                                                         if(d != a && d != b && d != c) {
  12.                                                                 for(e = 1 ; e <= 5 ; e ++) {
  13.                                                                         if(e != a && e != b && e != c && e != d) {
  14.                                                                                 i = a * 10000 + b * 1000 + c * 100 + d * 10 + e ;
  15.                                                                                 if(! (i % 7)) {
  16.                                                                                         if(min < 10000) min = i                 ;
  17.                                                                                         else if(i < min) min = i                ;
  18.                                                                                 }
  19.                                                                                 printf("%d\n" , i)                              ;
  20.                                                                         }
  21.                                                                 }
  22.                                                         }
  23.                                                 }
  24.                                         }
  25.                                 }
  26.                         }
  27.                 }
  28.         }
  29.         printf("min = %d\n" , min)                                                                                             ;
  30. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 12345
  4. 12354
  5. 12435
  6. 12453
  7. 12534
  8. 12543
  9. 13245
  10. 13254
  11. 13425
  12. 13452
  13. 13524
  14. 13542
  15. 14235
  16. 14253
  17. 14325
  18. 14352
  19. 14523
  20. 14532
  21. 15234
  22. 15243
  23. 15324
  24. 15342
  25. 15423
  26. 15432
  27. 21345
  28. 21354
  29. 21435
  30. 21453
  31. 21534
  32. 21543
  33. 23145
  34. 23154
  35. 23415
  36. 23451
  37. 23514
  38. 23541
  39. 24135
  40. 24153
  41. 24315
  42. 24351
  43. 24513
  44. 24531
  45. 25134
  46. 25143
  47. 25314
  48. 25341
  49. 25413
  50. 25431
  51. 31245
  52. 31254
  53. 31425
  54. 31452
  55. 31524
  56. 31542
  57. 32145
  58. 32154
  59. 32415
  60. 32451
  61. 32514
  62. 32541
  63. 34125
  64. 34152
  65. 34215
  66. 34251
  67. 34512
  68. 34521
  69. 35124
  70. 35142
  71. 35214
  72. 35241
  73. 35412
  74. 35421
  75. 41235
  76. 41253
  77. 41325
  78. 41352
  79. 41523
  80. 41532
  81. 42135
  82. 42153
  83. 42315
  84. 42351
  85. 42513
  86. 42531
  87. 43125
  88. 43152
  89. 43215
  90. 43251
  91. 43512
  92. 43521
  93. 45123
  94. 45132
  95. 45213
  96. 45231
  97. 45312
  98. 45321
  99. 51234
  100. 51243
  101. 51324
  102. 51342
  103. 51423
  104. 51432
  105. 52134
  106. 52143
  107. 52314
  108. 52341
  109. 52413
  110. 52431
  111. 53124
  112. 53142
  113. 53214
  114. 53241
  115. 53412
  116. 53421
  117. 54123
  118. 54132
  119. 54213
  120. 54231
  121. 54312
  122. 54321
  123. min = 12453

  124. D:\00.Excise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 13:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表