【c语言】日常刷题?有趣的题目分享??

发布时间:2024年01月01日

︿( ̄︶ ̄)︿hi~~

ヽ( ̄ω ̄( ̄ω ̄〃)ゝ本次刷题发现3个比较有趣的题目,分享给您,希望对您有所帮助,谢谢??~

目录

1.单词覆盖还原(单词的连续性)

2.输出数字三角形(循环的灵活运用)

3.收金币(奇妙的思考)


1.单词覆盖还原(单词的连续性)

题目描述

一个长度为l的字符串中被反复贴有 `boy` 和 `girl` 两单词,后贴上的可能覆盖已贴上的单词(没有被覆盖的用句点表示),最终每个单词至少有一个字符没有被覆盖。问贴有几个 `boy` 几个 `girl`?

输入格式

一行被反复贴有 `boy` 和 `girl` 两单词的字符串。

?输出格式

两行,两个整数。第一行为 `boy` 的个数,第二行为 `girl` 的个数。

样例输入:?

......boyogirlyy......girl.......

样例输出 :

4
2

代码如下:

#include <stdio.h>
int main()
{
	char a[300];int boy=0,girl=0;
	gets(a);
	for(int i=0;a[i]!='\0';i++)
{
	if(a[i]=='b'||a[i+1]=='o'||a[i+2]=='y')
	{
		boy++;
	}
if(a[i]=='g'||a[i+1]=='i'||a[i+2]=='r'||a[i+3]=='l')
	{
		girl++;
	}
}
printf("%d\n",boy);
printf("%d",girl);
return 0; 
}

参考题解:

这里利用了计算机重复计算的功能,且有每个单词都是连续的,这样就可以通过if(a[i]=='b'||a[i+1]=='o'||a[i+2]=='y')这种类似的判断进行计数了~︿( ̄︶ ̄)︿

2.输出数字三角形(循环的灵活运用)

?题目描述

给出?n,请输出一个直角边长度是?n?的数字直角三角形。所有数字都是?2?位组成的,如果没有?2?位则加上前导?0。

?输入格式

输入一个正整数?n。

?输出格式

输出如题目要求的数字直角三角形。

样例输入:?

5

样例输出:?

0102030405
06070809
101112
1314
15

代码如下:

void f(int k)
{
	if(k<10)
	printf("0%d",k);
	else
	printf("%d",k);
	}
int main()
{
	int n;
	scanf("%d",&n);
	int m=1;int count=n;int k=1;
	for(int i=1;m!=n+1;i++)
	{
	for(int j=0;j<count;j++)
	{
		f(k++);	
	}
	printf("\n");
	count--;
	m++;
	}
	return 0;
}

参考题解:
两个for循环的分工明确:
以i为变量的for循环作为数字三角的竖排,每一层都会多一,所以m++;

以j为变量的for循环作为数字三角的横排,每一层都会少一,所以count--;

3.收金币(奇妙的思考)

题目描述

国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续?n?天每天收到?n?枚金币后,骑士会在之后的连续?n+1?天里,每天收到?n+1?枚金币。

请计算在前?k?天里,骑士一共获得了多少金币。

?输入格式

一个正整数?k,表示发放金币的天数。

?输出格式

一个正整数,即骑士收到的金币数。

样例输入:?

6

样例输出:?

14

代码如下:?

#include <stdio.h>
int main()
{
	long sum=0;
	int a,count=1;
	scanf("%d",&a);
	for(int i=1;i<=a;i++)
	{
		a-=i;sum+=count*count;count++;
	}
	printf("%ld",sum+a*count);
	return 0;
}

参考题解:

本题代码很少,但做法十分有趣,其中i<=a;i++;a-=i这三句表达式很好解决了每隔n天发n枚金币的情况,count++解决的是每次发金币的数量会+1.?



本次的分享就到这里了,希望对您有所帮助,我们下期见了~~

白白~○( ^皿^)っ

文章来源:https://blog.csdn.net/2301_79982543/article/details/135313994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。