题目21:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include<stdio.h>
int main()
{
int i = 0, t = 1;
for(i = 9; i > 0; i--)
{
t = (t + 1) * 2; //前一天有多少
}
printf("总共摘了%d个桃子\n", t);
return 0;
}
运行结果
#include<stdio.h>
int SumPeach(int day)
{
if(day == 10)
{
return 1;
}
else
{
return 2 * SumPeach(day + 1) + 2;
}
}
int main()
{
int sum = 0;
sum = SumPeach(1);
printf("第一天采摘%d个\n", sum);
return 0;
}
运行结果
题目22:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单。
#include<stdio.h>
int main()
{
char a, b, c;
for(a = 'x'; (a >= 'x')&&(a <= 'z'); a++)
{
for(b = 'x'; (b >= 'x')&&(b <= 'z'); b++)
{
for(c = 'x';(c >= 'x')&&(c <= 'z'); c++)
{
if(a != 'x' && (c != 'x')&&(c != 'z')&&((a != b)&&(a != c)&&(b != c)))
{
printf("a的对手是%c,b的对手是%c,c的对手是%c\n", a, b, c);
}
}
}
}
return 0;
}
运行结果
题目23:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0, j = 0;
for(i = 1; i <= 7; i++) //一共7行
{
for(j = 1; j <= abs(4 - i); j++) //观察发现 每一行空格数= 行数-4的绝对值
{
printf(" ");
}
for(j = 1; j <= 7 - 2 * abs(4 - i); j++) //观察发现 每一行*数=7-2*空格数
{
printf("*");
}
printf("\n");
}
return 0;
}
运行结果
题目24:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
#include<stdio.h>
int main()
{
int i = 0, temp = 0;
double s = 0, fenzi = 2, fenmu = 1;
for(i = 1; i <= 20; i++)
{
s = s + fenzi / fenmu; //每次加1项,求和
temp = fenzi; //暂存分子
fenzi = fenmu + fenzi; //下一项的分子是前一项分子分母的和
fenmu = temp; //下一项的分母是上一项的分子
}
printf("2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和为%f\n", s);
return 0;
}
运行结果
题目25:求1+2!+3!+…+20!的和
#include<stdio.h>
float JieCheng(int num)
{
if(num == 1)
{
return 1;
}
else
{
return num * JieCheng(num - 1);
}
}
int