2025年C语言习题答案【5】(仅参考)

C语言习题答案【5】(仅参考)1051 反转数 题目描述 给定一个整数 请将该数各个数位上的数字反转得到一个新数 新数也应满足整数的常见形式 即除非给定的原数为零 否则反转后得到的新数的最高位数字不应为零 输入 690 输出 96 示例 include iostream include iostream

大家好,我是讯享网,很高兴认识大家。
1051: 反转数

题目描述:

给定一个整数,请将该数各个数位上的数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。 
讯享网

输入

讯享网-690 

输出

-96 

示例

讯享网#include<iostream> #include<math.h> using namespace std; int main() { int oldNumber, newNumber = 0; cin>>oldNumber;//123 while(oldNumber != 0) { newNumber *= 10;//0 30 newNumber += oldNumber % 10;//3 oldNumber /= 10;//12 } cout<<newNumber<<endl; return 0; } 
1052: 礼物数目

题目描述:

小明买了许多圣诞礼物准备用于班级活动,回家后感觉太累了,便让机器人小灵帮忙数一下礼物一共有多少份。但是小灵不喜欢数字4,因此每次数到4时便跨过该数。例,若小灵数到339时,下一份礼物小灵就会数350。 

输入

55 

输出

40 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int num,nump,p,i,total=0; cin>>num;//小灵给出的礼物的份数 if(num<1 && num>1000) return 0; nump=num; while(true) { p = nump % 10; if(p == 4) { return 0; } if(p == 0) { break; } nump/=10; } for(i=0; i<num; i++) { if((i%10 == 4)||(i/10%10 == 4)||(i/100 == 4)) { continue; } total++; } cout<<total<<endl;//输出实际数字 return 0; } 
1053: 分解质因数

题目描述:

分解质因数。 

输入

36 

输出

2*2*3*3 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int num,i=2; cin>>num; for(i=2; i<=num; i++) { while(num!=i) { if(num%i==0) { printf("%d*",i); num/=i; } else break; } } printf("%d\n",num);//最后一个数必是除后的本身 return 0; } 
1054: 求a+aa+aaa+…aa…a(n个a)

题目描述:

输入n和a,求a+aa+aaa+…aa…a(n个a),如当n=3,a=2时,2+22+222=246。 

输入

3 2 

输出

246 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int n,a,i,sum=0,aa; cin>>n>>a; if((n>10&&n<=0) ||(a>10&&a<=0)) return 0; aa=a; for(i=1; i<=n; i++) { sum+=a; a=a*10+aa; } cout<<sum<<endl; return 0; } 
1055: 零花钱

题目描述:

妈妈给了小明m元零花钱,为了鼓励小明节约,说如果小明每天只消费1元,每花k元就可以得到1元额外奖励,如果听妈妈的话小明最多可以花多少天? 

输入

4 3 

输出

5 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int m,k,total=0 ; cin>>m>>k; if (k<2 || k>m || m>1000) return 0; while(m--) { total++; if(total % k==0) m++; } cout<<total<<endl; return 0; } 
1056: n!的最高位

题目描述:

输入一个正整数n。输出n!的最高位上的数字。 

输入

1000 

输出

4 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int m,k,total=0 ; cin>>m>>k; if (k<2 || k>m || m>1000) return 0; while(m--) { total++; if(total % k==0) m++; } cout<<total<<endl; return 0; } 
1057: 小车位置

题目描述:

 有一辆智能小车,最初(时间为0)的位置为(0,0),我们想知道它最后的位置。小车以每小时10公里的速度向北移动(北为y轴正向,东为x轴正向)。小车会收到一系列依照时间戳记排序的命令,1表示“向左转”,2表示“向右转”,3表示“停止”。每个命令的前面有一个时间戳记,所以知道该命令是何时发出的。最后一个命令一定是“停止”。另外假设,这辆小车非常灵活,它可以在瞬间转弯。 例,小车在时间为5时收到一个“向左转”的命令1,在时间10收到一个“向右转”的命令2,在时间15收到一个“停止”的命令3。那么在最后时间15时,小车的位置将在(-50,100)。程序只要求输出小车最后的位置,第一个整数是x坐标,第二个整数是y坐标。 

输入

5 1 10 2 15 3 

输出

-50 100 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int x=0,y=0;//初始化小车位置(0,0) int time,command,w=0,n=0;//command为命令,time是时间 //n为决定车头朝向,0为北,1为东,2为南,3为西; //w为计时器,记录上次的时间,以此计算间隔时长 while(scanf("%d %d",&time,&command),command!=0) { //键盘输入时间以及命令 //要保证n始终在0-3之间 switch(n) { case 0: y+=10*(time-w); break; case 1: x+=10*(time-w); break; case 2: y-=10*(time-w); break; case 3: x-=10*(time-w); break; } if(command==3) break;//如果命令是3,停止 else if(command==1) n=n-1; //如果命令是1,向左转,n-1 else if(command==2) n=n+1; //如果命令是2,向右转,n+1 n=(n+4)%4;//对4取模改变方向,确保范围0~3 w=time;//w记录上次的时间 } printf("%d %d",x,y);//输出小车的横坐标和纵坐标 return 0; } 
1058: 乘积计算

题目描述:

做作业的时候,邻座的小朋友问你:“五乘以七等于多少?”你应该不失礼貌地微笑着告诉他:“五十三”。本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。【注意前导0不要输出。】 

输入

50 7 

输出

53 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int a ,b,sum=0; while(scanf("%d %d",&a,&b),a<1000,b<1000) { sum= a*b*10; while(sum>0) { sum=sum/10; int g=sum%10; if(g==0) { continue; } cout<<g; } break; } return 0; } 
1059: 两个数的最大公约数

题目描述:

输入2个正整数a,b,求a与b的最大公约数。 

输入

6 15 

输出

3 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int a = 0,b = 0; cin>>a>>b; while((a-b) != 0) { if(a>b) a = a-b; else b = b-a; } printf("%d\n", b); return 0; } 

1060: 两个数的最小公倍数

题目描述:

正整数a和正整数b的最小公倍数是指能被a和b整除的最小的正整数值,设计一个算法,求输入a和b的最小公倍数。 

输入

5 3 

输出

15 

示例

#include<iostream> #include<math.h> using namespace std; int main() { int x,y,z = 0,sum; cin >> x >> y; sum = x*y; while (y != 0) { z = x % y; x = y; y = z; } cout<<sum/x<<endl; return 0; } 
小讯
上一篇 2025-02-25 08:59
下一篇 2025-04-09 07:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/41423.html