发布时间:2023-07-04 12:30
刷题刷题刷题!!!
目录
91.水仙花数
92.变种水仙花
93.公务员面试
94.反向输出一个四位数
95.小乐乐与进制转换
96. [NOIP2015]金币
97. 回文对称数
98.线段图案
99.正方形图案
100. 直角三角形图案
结尾
描述:春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如: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;
}
描述:
变种水仙花数 - 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;
}
描述:
公务员面试现场打分。有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
描述:将一个四位数,反向输出。
输入描述:一行,输入一个整数n(1000 <= n <= 9999)。
输出描述:针对每组输入,反向输出对应四位数。
示例:输入:1234
输出:4321
#include
int main()
{
int n;
scanf("%d",&n);
while(n)
{
printf("%d",n%10);
n/=10;
}
return 0;
}
描述:小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是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;
}
描述:国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续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
描述:今天牛牛学到了回文串,他想在数字里面找回文,即回文数,回文数是正着读与倒着读都一样的数,比如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;
}
描述: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;
}
描述: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;
}
描述:KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的直角三角形图案。
输入描述:多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。
示例:输入:4
输出:
*
* *
* * *
* * * *
#include
int main()
{
int n,j,i;
while(~scanf("%d",&n))
{
for(i=1;i
期待你们的关注,我会更努力去做好每一个知识点,谢谢!!
我是Try_harder,正在磕磕绊绊中成长~~