C练习实例21-25题打卡

C练习实例21-25题打卡,第1张

C练习实例21-25题打卡

目录

题目21:

思路:代码:结果: 题目22:

思路:代码:结果: 题目23:

思路:代码:结果: 题目24:

思路:代码:结果: 题目25:

思路:代码:结果:

题目21:

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

思路
    设当天的桃子数为x,前一天的桃子数为yx=y*1/2-1,y=2(x+1)。根据第十天还剩一个桃子可以推算出第一天的桃子总数。
代码:
#include"stdio.h"
int main()
{
	int a=1,i,s=0;
	for(i=0;i<9;i++)
	{
		a=2*(a+1);
	}
	printf("%d",a);
}
结果:

题目22:

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

思路:
    设出a,b,c对战的人且对战人员不相同根据题设假定进行排除决定出比赛名单
代码:
#include"stdio.h"
int main()
{
	char m,n,k;
	for(m='x';m<='z';m++)
	{
		for(n='x';n<='z';n++)
		{
			for(k='x';k<='z';k++)
			{
				if(k!=m&&k!=n&&m!=n&&k!='x'&&k!='z'&&m!='x')
				{
				    printf("a--%ctb--%ctc--%c",m,n,k);
				}
			}
		}
	}
	return 0;
}
结果:

题目23:

打印出如下图案(菱形)。

   *
  ***
 *****
*******
 *****
  ***
   *
思路:
    先算空格,再算*的个数找出上面两个与行数的关系即可解题。
代码:
#include"stdio.h"
int main()
{
	int i,j,k;
	for(i=0;i<4;i++)
	{
		for(j=0;j<=3-i;j++)
		printf(" ");
		for(k=0;k<2*i+1;k++)
		printf("*");
		printf("n");
	}
	for(i=2;i>=0;i--)
	{
		for(j=0;j<=3-i;j++)
		printf(" ");
		for(k=0;k<2*i+1;k++)
		printf("*");
		printf("n");
	}
	return 0;
}
结果:

题目24:

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

思路:
    观察数列可以看出分子变成了下一项的分母,而下一项的分子是前一项的分子分母之和。算出前二十项之和即可。
代码:
#include"stdio.h"
int main()
{
	float i,j,s,t;
	int k;
	i=2;
	j=1;
	for(k=0;k<20;k++)
	{
		s=s+i/j;
		t=i;
		i=i+j;
		j=t;
	}
	printf("%f",s);
}
结果:

题目25:

求1+2!+3!+…+20!的和。

思路:
    先求阶乘,再求累加。位数比较大,需要用long long。
代码:
m#include"stdio.h"
int main()
{
	int i,j;
	long long s,t=0;
	for(i=1;i<=20;i++)
	{
		s=1;
		for(j=1;j<=i;j++)
		{
			s=s*j;
		}
		t+=s;
	}
	printf("%lld",t);
}
结果:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5702636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存