| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2510 人关注过本帖, 1 人收藏
标题:小猴喜欢吃桃,吃法有点怪,第一天吃1个,以后每天吃的数量比前一天吃的数多 ...
只看楼主 加入收藏
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:84.38%
收藏(1)
已结贴  问题点数:20 回复次数:24 
小猴喜欢吃桃,吃法有点怪,第一天吃1个,以后每天吃的数量比前一天吃的数多2个
这是论坛里一童鞋的问题,我自己做的,不知道哪里有问题。高手些多多指教一下,反正就是不对。那位同学已经结贴了,所以我这里开帖,多多指点一下
#include"stdio.h"
int main(){
int n,day=0,k=2;
printf("input the tao zi number:");
scanf("%d",&n);
while((n=n-k)!=0)
{k=k+2;
day++;}
printf("%d",day);}
搜索更多相关主题的帖子: 童鞋 include number 
2011-12-20 22:49
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
他的原题:c小问题求教
小猴喜5欢吃桃,吃法有点怪,第一天吃1个,以后每天吃的数量比前一天吃的数多2个,现有n个桃,问至少要吃多少天才能吃完。
第一行输入:n

认为事物非黑即白是缺智慧的表现……
2011-12-20 22:49
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
我嚓,论坛里的同学不要那啥,不吝赐教嘛。

认为事物非黑即白是缺智慧的表现……
2011-12-20 22:55
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
呵呵,你多大了?

重剑无锋,大巧不工
2011-12-20 22:57
xuxiong517
Rank: 2
等 级:论坛游民
帖 子:35
专家分:29
注 册:2011-11-1
收藏
得分:2 
改为while((n=n-k)>=0)。。
2011-12-20 23:01
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用beyondyf在2011-12-20 22:57:31的发言:

呵呵,你多大了?
很大了,反正。因为是自己看书,所以就找些题来练练

认为事物非黑即白是缺智慧的表现……
2011-12-20 23:09
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
#include"stdio.h"
int main(){
int n,day=0,k=2;
printf("input the tao zi number:");
scanf("%d",&n);
while((n=n-k)>=0)
{k=k+2;
day++;}
day=day+1;
printf("%d",day);}

OK了。不过只能针对偶数,如果是奇数的话,再增加一个判断,再在最后day那里再加一个1.
这里day最后加1,是因为最开始赋值就是0,比如如果只是2个,那么输出还是0天,所以就加了一个1

认为事物非黑即白是缺智慧的表现……
2011-12-20 23:13
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用xuxiong517在2011-12-20 23:01:56的发言:

改为while((n=n-k)>=0)。。
嗯,说的很对,谢谢你,呵呵

[ 本帖最后由 a271885843 于 2011-12-20 23:17 编辑 ]

认为事物非黑即白是缺智慧的表现……
2011-12-20 23:13
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:2 
回复 楼主 a271885843
k = 2 改成 k = 1.
while((n=n-k)>=0) 改成 while((n=n-k)>=1)。
这样改只能对一部分,你的算法有漏洞。知道n 你为什么要从第一天吃的桃子数开始减?
这个是我写的你看下:
#include <stdio.h>
int main(void)
{
    while (888)
    {
      int n, i, flag = 1;
      int day = 0, k = 0, sum = 0;

      printf("请输入桃子数:");
      scanf("%d", &n);
      for(i = 1; flag; i++)
      {
        k = i * 2 - 1;     // 第i天吃掉的桃子数
        day++;      // 记录这是第几天
        sum += k;   // 从第1天到第i天一共吃掉的桃子数
        if (sum >= n)
            flag = 0;  // 桃子吃光光, 就在今天
        else
            flag = 1;  // 还有桃子,明天继续吃
      }
      printf("经过%d天,猴子就干光了桃子.\n", day);
    }
    return 0;
}

[ 本帖最后由 有容就大 于 2011-12-20 23:44 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2011-12-20 23:36
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用有容就大在2011-12-20 23:36:23的发言:

k = 2 改成 k = 1.
while((n=n-k)>=0) 改成 while((n=n-k)>=1)。
这样改只能对一部分,你的算法有漏洞。知道n 你为什么要从第一天吃的桃子数开始减?
这个是我写的你看下:
#include
int main(void)
{
    while (888)
    {
      int n, i, flag = 1;
      int day = 0, k = 0, sum = 0;

      printf("请输入桃子数:");
      scanf("%d", &n);
      for(i = 1; flag; i++)
      {
        k = i * 2 - 1;     // 第i天吃掉的桃子数
        day++;      // 记录这是第几天
        sum += k;   // 从第1天到第i天一共吃掉的桃子数
        if (sum >= n)
            flag = 0;  // 桃子吃光光, 就在今天
        else
            flag = 1;  // 还有桃子,明天继续吃
      }
      printf("经过%d天,猴子就干光了桃子.\n", day);
    }
    return 0;
}
嗯。比我的强多了,呵呵。其他的都看懂了,为什么k=i*2-1呢?

认为事物非黑即白是缺智慧的表现……
2011-12-20 23:53
快速回复:小猴喜欢吃桃,吃法有点怪,第一天吃1个,以后每天吃的数量比前一天吃 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042746 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved