| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3508 人关注过本帖
标题:请问一下各位大神这个运行怎么不对呀?。。是HDU的一道新手题
只看楼主 加入收藏
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
结帖率:72.73%
收藏
已结贴  问题点数:5 回复次数:12 
请问一下各位大神这个运行怎么不对呀?。。是HDU的一道新手题
各位大神请教一下我这个错在哪了呀?运行是对的,但提交上去就不对,,谢谢各位了!!!
蟠桃记

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 65522    Accepted Submission(s): 48785


Problem Description
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!
什么问题?他研究的问题是蟠桃一共有多少个!
不过,到最后,他还是没能解决这个难题,呵呵^-^
当时的情况是这样的:
第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
 

Input
输入数据有多组,每组占一行,包含一个正整数n(1<n<30),表示只剩下一个桃子的时候是在第n天发生的。
 

Output
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
 

Sample Input
2
4
 

Sample Output
4
22
 





我的代码是:
#include <stdio.h>
#include <math.h>
int main()
{
 int day,z1,z2=1,d,i;
 while(scanf("%d",&day)!=EOF)
 {
   d=day-1;
   while(d>0)
   {
     z1=(z2+1)*2;
     z2=z1;
     d--;
   }
    printf("%d\n",z2);
 }

 return 0;
}
请各位大神看一下 到底是哪里错了呀。。
搜索更多相关主题的帖子: 运行 总数 Input 输入 数据 
2017-07-25 17:19
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
f(n) = 3 × 2^(n - 1) - 2
n=4,f(4)=3*2^(4-1)-2=3*2^3-2=3*8-2=22
收到的鲜花
  • 九转星河2017-07-25 17:43 送鲜花  1朵   附言:看上去数学可以~就这样意思一下~

能编个毛线衣吗?
2017-07-25 17:31
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 2楼 wmf2014
亲这个我知道,但是我想知道我的代码错在哪了。。运行都是对的,就是ac不了,,请大神帮忙看看啊。。。。
2017-07-25 17:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 hisia_
z2没有重置~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-25 17:47
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 4楼 九转星河
重置是什么意思呀?我是初学c语言 所以有点不太懂,,z2不是等于z1了吗?这算不算重置呀?
2017-07-25 18:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
回复 5楼 hisia_
试试案例连续输入1 2 3 4 5 6 7 8 9 就知道重置是什么意思了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-25 18:13
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
收藏
得分:0 
回复 6楼 九转星河
谢谢大神!!!!!了解了  真的没重置,我懂了  谢谢!!
2017-07-25 18:17
无尘子
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-7-26
收藏
得分:0 
回复 7楼 hisia_
能不能麻烦告知一下重置之后的程序,谢谢!
2017-07-26 12:13
zzr1024
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2017-7-25
收藏
得分:0 
回复 2楼 wmf2014
#include<stdio.h>

int treat(int n);

int main(void)
{
  int t_days;
  t_days = treat(4);
  printf("%d\n",t_days);
  printf("pause");
  return 0;
}

int treat(int n)
{
    int days = 0;
    if( n > 1)
    {
    days = (treat(n - 1) + 1) * 2;     //递归
    }
    else
    days = 1;
    return days;
}
/*个人感觉用递归思想解决这题会更通俗易懂*/

[此贴子已经被作者于2017-7-26 13:21编辑过]


/* bug是什么东东 */
2017-07-26 13:19
zzr1024
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2017-7-25
收藏
得分:0 
回复 8楼 无尘子
#include <stdio.h>
#include <math.h>
int main()
{
 int day,z1,z2=1,d,i;
 while(scanf("%d",&day)!=EOF)
 {
   d=day-1;
   while(d>0)
   {
     z1=(z2+1)*2;
     z2=z1;
     d--;
   }
    printf("%d\n",z2);
    z2 = 1;       //重置z2,避免下次使用时z2调用的为上次操作后的数值
 }

 return 0;
}

/* bug是什么东东 */
2017-07-26 13:32
快速回复:请问一下各位大神这个运行怎么不对呀?。。是HDU的一道新手题
数据加载中...
 
   



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

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