c语言|每天一练——牛客网基础语法(10)

刷题刷题刷题!!!
c语言|每天一练——牛客网基础语法(10)
文章图片

目录
91.水仙花数
92.变种水仙花
93.公务员面试
94.反向输出一个四位数
95.小乐乐与进制转换
96.[NOIP2015]金币
97. 回文对称数
98.线段图案
99.正方形图案
100. 直角三角形图案
结尾

91.水仙花数 描述:春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。
输入描述:输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。
输出描述:对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。
示例:
输入:100 120
300 380
输出:no
370 371
#include #include #include int main() { int a,b; while(~scanf("%d %d",&a,&b)) { int i=0; i=a; int flag=0; while(i++<=b) { if(pow(i/100,3)+pow((i%100)/10,3)+pow(i%10,3)==i) { flag++; if(flag==1) printf("%d",i); else if(flag>1) printf(" %d",i); } } if(flag==0) printf("no\n"); else printf("\n"); } return 0; }

92.变种水仙花 描述:
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1*461 + 14*61 + 146*1
求出 5位数中的所有 Lily Number。
输入描述:无
输出描述:一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。
#include int main() { int i,j; for(i=10000; i<100000; i++) { int sum=0; for(j=10; j<=10000; j=j*10) { sum=sum+(i/j)*(i%j); } if(sum==i) printf("%d ",i); } return 0; }

93.公务员面试 描述:
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。(注:本题有多组输入)
输入描述:每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
输出描述:每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
示例:输入:99 45 78 67 72 88 60
输出:73.00
#include int main() { int n,max=0,min=100,sum=0,count=0; while(~scanf("%d",&n)) { if(n>max) { max=n; } if(n

94.反向输出一个四位数 描述:将一个四位数,反向输出。
输入描述:一行,输入一个整数n(1000 <= n <= 9999)。
输出描述:针对每组输入,反向输出对应四位数。
示例:输入:1234
输出:4321
#include int main() { int n; scanf("%d",&n); while(n) { printf("%d",n%10); n/=10; } return 0; }

95.小乐乐与进制转换 描述:小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。
输入描述:输入一个正整数n(1 ≤ n ≤ 10^9)
输出描述:输出一行,为正整数n表示为六进制的结果
示例:输入:6
输出:10
#include int main() { int n; int arr[100]={0}; int count=0; int s=0; scanf("%d",&n); if(n==0) { count=1; arr[count]=0; } while(n) { count++; arr[count]=n%6; n/=6; } for(int i=count; i>0; i--) { printf("%d",arr[i]); } return 0; }

96.[NOIP2015]金币 描述:国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。
请计算在前K天里,骑士一共获得了多少金币。
输入描述:输入只有1行,包含一个正整数K,表示发放金币的天数。
输出描述:输出只有1行,包含一个正整数,即骑士收到的金币数。
示例:输入:6
输出:14
说明:骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到1+2+2+3+3+3=14枚金币。
#include int main() { int k,i,j,b=0,sum=0; scanf("%d",&k); for(i=1; b

97. 回文对称数 描述:今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如1221,343是回文数,433不是回文数。请输出不超过n的回文数。
输入描述:输入一个整数n(1 <= n <= 100000)
输出描述:从1开始按从小到大的顺序输出所有回文数
示例:输入:10输出:1 2 3 4 5 6 7 8 9
#include int sum(int x) { int temp=0; while(x!=0) { temp*=10; temp=temp+x%10; x/=10; } return temp; }int main() { int i,n; scanf("%d",&n); for(i=1; i<=n; i++) { if(i==sum(i)) printf("%d\n",i); } return 0; }

98.线段图案 描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:多组输入,一个整数(1~100),表示线段长度,即“*”的数量。
输出描述:针对每行输入,输出占一行,用“*”组成的对应长度的线段。
示例:输入:10
2
输出:**********
**
#include int main() { int n; while(~scanf("%d",&n)) { for(int i=1; i<=n; i++) { printf("*"); } printf("\n"); } return 0; }


99.正方形图案 描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正方形图案。
输入描述:多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应边长的正方形,每个“*”后面有一个空格。
#include int main() { int i,j,n; while(~scanf("%d",&n)) { for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { printf("* "); } printf("\n"); } }return 0; }

100. 直角三角形图案 描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
示例:输入:4
输出:
*
【c语言|每天一练——牛客网基础语法(10)】* *
* * *
* * * *
#include int main() { int n,j,i; while(~scanf("%d",&n)) { for(i=1; i

结尾 期待你们的关注,我会更努力去做好每一个知识点,谢谢!!
我是Try_harder,正在磕磕绊绊中成长~~
送上小心心吧c语言|每天一练——牛客网基础语法(10)
文章图片
c语言|每天一练——牛客网基础语法(10)
文章图片
c语言|每天一练——牛客网基础语法(10)
文章图片
!!

c语言|每天一练——牛客网基础语法(10)
文章图片



    推荐阅读