鱼C论坛

 找回密码
 立即注册
查看: 1177|回复: 1

[已解决]各位大佬可以用穷举法来解决吗。其他方法也是可以的。

[复制链接]
发表于 2020-10-27 21:09:29 | 显示全部楼层 |阅读模式

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

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

x
小明所住的小区有三个户型,分别是三室一厅,四室一厅和五室两厅。
小明在散步的时候绕着一栋小区内的房子走了一圈,数了数这栋楼的窗户数量。
假设一室,一厅都有一扇窗户,即三室一厅有四扇窗户,五室两厅有七扇窗户。
现请你根据小明所数的窗户数量来判断这栋楼不同的户型各有多少个,如果有多种情况,只需输出一种。
使用一个t变量来设置输出例程的数量,例如t=2,则需要输入两次窗户的数量以及他们分别户型数量输出。
最佳答案
2020-10-28 09:27:38
  1. /*
  2. 根据题意,可得方程: 4x + 5y + 7z = a
  3. x:三室一厅
  4. y:四室一厅
  5. z:五室二厅
  6. a:窗户总数
  7. 其中 x,y,z 为大于0的整数

  8. 一个方程三个未知数,只能用穷举法了。
  9. */

  10. #include<stdio.h>


  11. int main()
  12. {
  13.         int num;
  14.         int x,y,z;
  15.         int sum = 0;
  16.        
  17.         printf("请输入窗户数量:");
  18.         scanf("%d",&num);

  19.         if(num < (4 +5 + 7))
  20.         {
  21.                 printf("Input error!");
  22.                 return 0;
  23.         }

  24.         for(x = 1 ; x < num/4 ; x++)
  25.         {
  26.                 for(y = 1 ; y < num/5 ; y++)
  27.                 {
  28.                         for(z = 1 ; z < num/7 ; z++)
  29.                         {
  30.                                 sum = 4 * x + 5 * y + 7 * z;
  31.                                 if(sum == num)
  32.                                 {
  33.                                         printf("三室一厅:%d,四室一厅:%d,五室二厅:%d",x,y,z);
  34.                                         return 0;
  35.                                 }
  36.                         }
  37.                 }
  38.         }

  39.         printf("Input error!");

  40.         return 0;
  41. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-28 09:27:38 | 显示全部楼层    本楼为最佳答案   
  1. /*
  2. 根据题意,可得方程: 4x + 5y + 7z = a
  3. x:三室一厅
  4. y:四室一厅
  5. z:五室二厅
  6. a:窗户总数
  7. 其中 x,y,z 为大于0的整数

  8. 一个方程三个未知数,只能用穷举法了。
  9. */

  10. #include<stdio.h>


  11. int main()
  12. {
  13.         int num;
  14.         int x,y,z;
  15.         int sum = 0;
  16.        
  17.         printf("请输入窗户数量:");
  18.         scanf("%d",&num);

  19.         if(num < (4 +5 + 7))
  20.         {
  21.                 printf("Input error!");
  22.                 return 0;
  23.         }

  24.         for(x = 1 ; x < num/4 ; x++)
  25.         {
  26.                 for(y = 1 ; y < num/5 ; y++)
  27.                 {
  28.                         for(z = 1 ; z < num/7 ; z++)
  29.                         {
  30.                                 sum = 4 * x + 5 * y + 7 * z;
  31.                                 if(sum == num)
  32.                                 {
  33.                                         printf("三室一厅:%d,四室一厅:%d,五室二厅:%d",x,y,z);
  34.                                         return 0;
  35.                                 }
  36.                         }
  37.                 }
  38.         }

  39.         printf("Input error!");

  40.         return 0;
  41. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 17:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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