11、Problem X买菜记账
简要题意:
妈妈每天都出去买菜,请你为她记一下花了多少钱。支付菜价的时候,采用四舍五入的方法把分头去掉,输出一个精度为角的菜价总量。输入含有一些数据组,每组数据包括菜种(字串),数量(计量单位不论,一律为double型数)和单价(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的
解题思路:
只需将菜种、数量、单价输入进去,然后计算每组的和即可。
解题细节:
(sum*10+0.5)/10.0,由于支付要四舍五入去掉分,所以要先乘10变成个位是角,如果分大于5时,加上0.5就会进到下一位,则多一角;如果分小于5,则加上0.5也不会多一角。最后再除以10.0变回个位时元。
源码:
#include<stdio.h>
#include<math.h>
int main(void)
{
char s[20];
double n, m, sum=0.0;
while(scanf("%s %lf %lf", s, &n, &m)!=EOF)
{
sum+=n*m;
}
printf("%.1lf\n", floor(sum*10+0.5)/10.0);
return 0;
}
12、Problem A计算桃子数
简要题意:
悟空偷吃蟠桃,第一天悟空吃掉桃子总数一半多一个,并且以后每天都吃掉前一天剩下的一半多一个,到第n天时只剩下一个桃子。计算他第一天开始吃的时候桃子一共有多少个呢?
解题思路:
找出桃子数与天数的规律,然后计算即可。
解题细节:
先定义第n天的桃子数sum=1
源码:
#include<stdio.h>
int main()
{
int i,n,sum;
while(scanf("%d",&n)!=EOF)
{
sum=1;
if(n>1&&n<30)
for(i=1;i<n;i++)
{
sum=(sum+1)*2;
}
printf("%d\n",sum);
}
return 0;
}