蟠桃记
时间: 1ms 内存:64M
描述:
孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃子一共有多少个桃子。
输入:
输入数据有多组,每组占一行,包含一个正整数n(1≤n≤30),表示只剩下一个桃子的时候是在第n天发生的。
输入以0结束。
输出:
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
示例输入:
2
4
0
示例输出:
4
22
提示:
参考答案(内存最优[748]):
#include<stdio.h>
int main()
{
int n,i,m,sum;
while(scanf("%d",&n)!=EOF&&n!=0){
m=1;sum=1;
for(i=n;i>1;i--){
sum=(m+1)*2;
m=sum;
}
printf("%d\n",sum);
}
return 0;
}
参考答案(时间最优[0]):
#include <stdio.h>
struct Student
{
char num[203];
char name[20];
int score[3];
float a;
};
int main()
{
int y;
void input(struct Student stu1[],int x);
void output(struct Student stu[],int x);
struct Student stu[100],*p=stu;
scanf("%d",&y);
input(p,y);
output(p,y);
return 0;
}
void input(struct Student stu[],int x)
{
int i;
int a1=0,a2=0,a3=0;
for(i=0;i<x;i++)
{
scanf("%s%s%d%d%d",stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].a=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);
a1+=stu[i].score[0];
a2+=stu[i].score[1];
a3+=stu[i].score[2];
}
printf ("%d %d %d\n",a1/x,a2/x,a3/x);
}
void output(struct Student stu[],int x)
{
int i,m=0;
for(i=1;i<x;i++)
if(stu[i].a>stu[m].a) m=i;
printf("%s %s %d %d %d",stu[m].num,stu[m].name,stu[m].score[0],stu[m].score[1],stu[m].score[2]);
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。