A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悄然林静 中级黑马   /  2016-7-20 23:51  /  1300 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      一篮鸡蛋,不止一个。有人两个两个数,多余一个;三个三个数,多余一个;再四个四个地数,也多余一个。请问这篮鸡蛋至少有多少个?

      容易知道鸡蛋个数为2、3、4的最小公倍数+1,所以:
第一种方法:
  1. #include<stdio.h>
  2. int main()
  3. {
  4.      for(int i=2;;i++)
  5.      {
  6.           if(i%2==1&&i%3==1&&i%4==1)  //当3个条件同时满足时,i的值就是鸡蛋个数
  7.           {
  8.                 printf("鸡蛋个数为%d\n",i);
  9.                 break;
  10.           }
  11.      }
  12. }
复制代码

第二种:
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int egg=0;
  5.     /*当(i%2||i%3||i%4)==0时,停止循环,此时二二、叁叁、四四数法都刚好输完,鸡蛋个数为i+1个,那么再加上1就是实际的鸡蛋数量了*/
  6.     for(int i=1;(i%2||i%3||i%4);i++)  
  7.     {
  8.         egg=i+1+1;
  9.     }
  10.     printf("%d\n",egg);
  11.     return 0;
  12. }
复制代码

2 个回复

倒序浏览
个人觉得第一种方法比较实用一些,也是比较常用的方式,话说这题用while应该更简便一些。
回复 使用道具 举报
第二种方法更好理解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马