当前位置: 首页 > news >正文

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

︿( ̄︶ ̄)︿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);elseprintf("%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. 



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

白白~○( ^皿^)っ

http://www.lryc.cn/news/271797.html

相关文章:

  • LINUX 抓包工具Tcpdump离线安装教程
  • c语言-string.h库函数初识
  • PyTorch官网demo解读——第一个神经网络(4)
  • TCP发送和接受数据
  • SpringBoot快速集成多数据源(自动版)
  • mysql原理--Explain详解
  • 阶段五-JavaWeb综合练习-学生管理系统
  • DevC++ easyx实现视口编辑--像素绘图板与贴图系统
  • Visual studio 2010的安装与使用
  • Download Monitor Email Lock下载监控器邮件锁插件
  • 在vscode中创建任务编译module源文件
  • element ui级连选择,lazyLoad选择地区
  • 软件测试基础知识详解
  • Linux之进程管理
  • 动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
  • 187.【2023年华为OD机试真题(C卷)】阿里巴巴找黄金宝箱(I)(贪心算法-JavaPythonC++JS实现)
  • Ubuntu22.04系统安装软件、显卡驱动、cuda、cudnn、pytorch
  • 基于矩阵乘的CUDA编程优化过程
  • layuiadmin新建tabs标签页,点击保存,打开新的标签页并刷新
  • Rxjs概念 学习
  • pillow像型学操作(转载笔记) --- 西北乱跑娃
  • JS作用域链和闭包
  • 【Spring实战】15 Logback
  • Stable Diffusion WebUI安装合成面部说话插件SadTalker
  • CSS 纵向顶部往下动画
  • 科普:敏捷估算为什么用斐波那契数列
  • HarmonyOS资源分类与访问
  • message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra
  • 基于C#的机械臂欧拉角与旋转矩阵转换
  • 【百度前端三面面试题】