1、猴子吃桃问题:
一只猴子 第一天摘了n个桃 第一天吃了一半 然后又吃了一个 , 第二天又吃了一半 接着又吃了一个 往后10天重复 最后只剩下了1个桃 ,请问他第一天一共摘了多少个桃子
这道题可以反向来思考,如果说是最后一天n吃了一半的桃子,又再吃了一个桃子,则n+1天就会只剩下一个桃子,则第n天开始吃的时候桃子的数目为:(1+1)*2其中的前一个1是第n天多吃的一个,后一个1是其剩下的;那么 第n-1天开吃时的桃子数目就应该为:(((2+1)+1)+1)*2
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main(void)
{
int sum=0;
int n=0;
int x;
while (1)
{
printf("请输入猴子吃了几天的桃子:\n");
scanf("%d", &n);
if (n >= 0)
{
break;
}
else
{
printf("请输入正确次数:\n");
}
}
for ( int i= 0; i<=n ; i++)
{
if (i==0)//猴子最后一天吃剩下的一个桃子。
{
sum = 1;
}
else
{
sum = (sum + 1) * 2;
}
}
printf("猴一共在第一天摘了%d个桃子\n",sum);
return 0;
system("pause");
}
2、平均数
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main(void)
{
int num,
x;
double sum=0 ;
printf("请输入数字的个数:\n");
scanf("%d", &num);
if (num>0&&num<=1000)
{
int number[1000] = {0};
int i = 0;
printf("请依次输入%d个数字(输入-1结束运算):\n",num);
scanf("%d", &x);
while (i
number[i] = x;
sum += number[i];
i++;
if (i
scanf("%d", &x);
}
}
printf("%f\n",sum/num);//必需(%f对应double)函数类型相同才能进行相加输出。
}
else
{
printf("输入错误。\n");
}
return 0;
system("pause");
}