| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2416 人关注过本帖
标题:请教经典的C语言问题
只看楼主 加入收藏
qqrori
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2005-3-19
收藏
得分:0 
我觉得用for语句做简单一些,请注意,我的运行环境是在VC++6.0
#include <stdio.h>
void main()
{
int i,sum=1;
for(i=1;i<=18;i++)
sum=(sum+1)*2;
printf("sum=%d\n",sum);
}

[此贴子已经被作者于2005-3-25 13:05:17编辑过]


2005-03-22 14:31
wolf321h
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-3-21
收藏
得分:0 
你运行过吗?结果几何?

2005-03-22 15:58
qqrori
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2005-3-19
收藏
得分:0 
结果是786430,我和你的结果不一样!

[此贴子已经被作者于2005-3-25 13:04:25编辑过]


2005-03-23 16:11
zhangyunfeng
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-7-25
收藏
得分:0 
main()
{
int day,x1,x2;
day=17;
x2=1;
while(day>0)
{x1=(x2-1)*2;    /*第一天的桃子数是第2天桃子数减1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
}

[此贴子已经被作者于2005-8-4 16:35:25编辑过]


2005-08-04 16:34
袋鼠
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2005-7-19
收藏
得分:0 
源程序:
main()
{
 int day;
 long int x1,x2;              /* 注意此处要定义为长整型,防止溢出*/
 day=17;
 x2=1;
 while(day>0)
 {
  x1=(x2+1)*2;   
  x2=x1;
  day--;
 }
 printf("the total is %ld\n",x1);       /* 输出格式:%ld 为长整型 */
 getch();
}


当然用for语句也是可以的,效果一样
结果是393214
可以写一段程序反过来验证这个结果:
main()
{
 int day;
 long x1, x2;                  
 x1=393214; day=17;
 
 while(day>0)
 {
  x2=x1/2-1;
  x1=x2;
  day--;
 }
 
 printf("%d",x2);
 getch();
}

爱编程,爱生活
2005-08-04 17:20
java在线
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2005-7-9
收藏
得分:0 
qqrori你是按照2楼的编的吧?

他sum初值为1,在看下面的算法,你看倒数第一天猴子吃了几个?
2005-08-04 18:56
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
收藏
得分:0 
main()
{
    long int n=1;
    int i;
    for(i=17;i>=1;i--)
    {
        printf("%d day:%ld\n",i,n);    /*第i天剩下的桃子个数*/
        n=(n+1)*2;
    }
    printf("total:%ld",n);                 /*第一天摘的桃子个数*/
    getch();
}

[此贴子已经被作者于2005-8-6 13:31:26编辑过]



/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-08-05 21:43
Stayor
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2005-8-4
收藏
得分:0 
使用函数的递归调用,实现方法如下:
#include <stdio.h>
long f(int i)
{
long n;
if(i==18) n=1;
else n=(f(i+1)+1)*2;
printf("%ld\n",n);
return n;
}
main()
{
f(1);
printf("Press any key...");
getchar();
return 0;
}
2005-08-05 23:30
chenen_71
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-8-2
收藏
得分:0 
我用纯粹的数学方式算了一下,假使总共采了x个桃,那么第18天剩下的桃应该是:

{x-(2E1+2E2+2E3+2E4+……+2E18)}/2E18=1

说明一下:2E1表示2的一次方,以下依次类推。计算结果是785480。这个结果与上面各位算的都不一样啊!
2005-08-06 12:27
chenen_71
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-8-2
收藏
得分:0 
785480。我的结果算了多次,不会错的。请高手再做做这个题目,给我们一个准确的程序吧!
2005-08-06 12:32
快速回复:请教经典的C语言问题
数据加载中...
 
   



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

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