黑马程序员技术交流社区

标题: 数鸡蛋问题(for循环) [打印本页]

作者: 悄然林静    时间: 2016-7-20 23:51
标题: 数鸡蛋问题(for循环)
      一篮鸡蛋,不止一个。有人两个两个数,多余一个;三个三个数,多余一个;再四个四个地数,也多余一个。请问这篮鸡蛋至少有多少个?

      容易知道鸡蛋个数为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. }
复制代码

作者: wc88212    时间: 2016-7-21 00:06
个人觉得第一种方法比较实用一些,也是比较常用的方式,话说这题用while应该更简便一些。
作者: jilaiyuan    时间: 2016-7-21 09:50
第二种方法更好理解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2