C猴子吃桃

1 Sec

描述

数据

评测

题目描述

猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。

以后每天早上都吃了前一天剩下的一半零一个。到第NN天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

输入描述

一个整数N(0\lt N\le 30)N(0<N≤30)

输出描述

初始桃子总数

样例输入

10

样例输出

1534
#include<stdio.h>

int main()
{   int a,b,n;
    scanf("%d",&n);
    
    
    for(int i=1;i<=n-1;i++){
    	b=b+1;
    	a=b*2; 
    	b=a;
	} 
	
	printf("%d",a);
	return 0;
  } 

初稿如上

未过=-=

我一个一个输入n,发现n为1时输出为0

没错,我忘记给a,b赋初始值了+*+

#include<stdio.h>

int main()
{   int a,b,n;
    scanf("%d",&n);
    a=1;
    
    for(int i=1;i<=n-1;i++){
    	b=b+1;
    	a=b*2; 
    	b=a;
	} 
	
	printf("%d",a);
	return 0;
  } 

改了之后还是不行=!=

原来是超时了=*=

按照我的理解,这时应该简化程序-=-=

于是

#include<stdio.h>

int main()
{   int a,n;
    scanf("%d",&n);
    a=1;
    
    for(int i=1;i<=n-1;i++){
    
    	a=(a+1)*2; 
    ;
	} 
	
	printf("%d",a);
	return 0;
  }  

删掉b后果然变快了(hh)

30
1610612734
--------------------------------
Process exited after 0.8482 seconds with return value 0
请按任意键继续. . .

血的教训&。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值