C语言习题答案【6】(仅参考)

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; 
}

1061: 九九乘法表(一)

题目描述:

我们小时候学过的九九乘法表也许终生难忘,现在让我们重温这个美好的记忆,请编程输出九九乘法表. 

输入

输出

1*1=1
2*1=2   2*2=4
3*1=3   3*2=6   3*3=9
4*1=4   4*2=8   4*3=12  4*4=16
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

示例

#include<iostream>
#include<math.h>
using namespace std;
int main() {
	int i ,j ;
	for(i=1; i<=9; i++) {
		for(j=1; j<=i; j++) {
			if(i==j) {
				cout<<i<<"*"<<j<<"="<<i*j<<endl;
				continue;
			} 
			cout<<i<<"*"<<j<<"="<<i*j<<" ";
		}
	}
	return 0;
}

1062: 九九乘法表(二)

题目描述:

请按要求输出九九乘法表。要求所输出它的格式与平常的不同,是那种反过来的三角形,可不要看错了!

输入

3
2
1
5	

输出

1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9   
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18   
    
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9    
     
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9    
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18   
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27   
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36   
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45  

示例

#include<iostream> 
using namespace std; 
int main() {
	int m,n;
	cin>>n;
	for(int k=0;k<n;k++) {
		cin>>m;
		for(int i=0;i<m;i++) {
			for(int j=0;j<9-i;j++) {
				printf("%d*%d=%d ",i+1,j+i+1,(i+1)*(j+1+i));
			}
			cout<<endl;
		}
		cout<<endl;
	}
}

1063: 字符统计(一)

题目描述:

输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数,分行输出该结果。

输入

My input123 @%chars.

输出

characters=12
spaces=2
numbers=3
others=3

示例

#include <iostream>
using namespace std;
int main() {
	char str[100];
	char c;
	int numbers=0,characters=0,spaces=0,others=0,i;
	cin.getline(str,100);
	for(i=0; str[i]!=''; i++) {
		c = str[i];
		if((c>= 'A'&&c<='Z')|| (c>='a'&& c<='z')) characters++;
		else if(c>'0'&& c<'9') numbers++;
		else if(c == ' ') spaces++;
		else others++;
	}
	 	printf("characters=%dnspaces=%dnnumbers=%dnothers=%d",characters ,spaces,numbers,others);
 	return 0;
}

1064: 连续阶乘求和

题目描述:

输入一个正整数N,求1!+2!+3!+...+N!
提示:由于>10的整数的阶乘非常大,已超出整数的表示范围,故求阶乘时,需要将变量定义为double类型。 

输入

10

输出

4037913

示例

#include <iostream>
using namespace std; 
int digui(int num){
	int i,sum = 1; 
	if(num == 1) return 1; 
	for(i = 1;i<=num;i++){
	    sum = sum*i;
	} 
	return sum+digui(num-1);
}
 
int main() {
	double num,cinnum;
	cin>>cinnum; 
	cout<<digui(cinnum)<<endl;
	return  0;
}

1065: 求式子的和

题目描述:

在这里插入图片描述

求如上式子的和
请将结果定义为double类型。
注意求平方,不要用C数学库中提供的函数pow。

输入

输出

47977.928968

示例

#include<iostream>
using namespace std;
int main(){
	double sum=0,sum1=0,sum2=0;
	for(int i=1;i<=100;i++){
		sum+=i;
	}
	for(int i=1;i<=50;i++){
		sum1+=(i*i);
	}
	for(int i=1;i<=10;i++){
		sum2+=(1.0/i);
	}
	printf("%.6f",sum+sum1+sum2);
}

1066: 水仙花数

题目描述:

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。请输出所有的“水仙花数”。

输入

输出

153
370
371
407

示例

#include<iostream>
using namespace std;
int main(){
	int n1,n2,n3;
	for(int i=100;i<=999;i++){
		n1=i%10;
		n2=i/10%10;
		n3=i/100;
		if(i==n1*n1*n1+n2*n2*n2+n3*n3*n3) cout<<i<<endl;
	}
}

1067: 童年生活二三事

题目描述:

Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。

输入

1  2  0

输出

1
2

示例

#include<iostream>
using namespace std;
int main(){
	int a[41],n;
	a[0]=1;
	a[1]=2;
	for(int i=2;i<41;i++){
		a[i]=a[i-1]+a[i-2];
	}
	while(cin>>n){
		if(n==0){
			break;
		}
		cout<<a[n-1]<<endl;
	}
} 

1068: 韩信点兵

题目描述:

淮安民间传说着一则故事——“韩信点兵”,相关成语“韩信点兵,多多益善”。韩信从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。
输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。

输入

2 1 6

输出

41

示例

#include<iostream>
using namespace std;
int main(){
	int a,b,c,i;
	cin>>a>>b>>c; 
	for(i=10;i<=100;i++){
		if(i%3==a && i%5==b && i%7==c){
			cout<<i;
			break;
		}
	}
	if(i==101){
		cout<<"No answer";
	}
}

1069: 小球蹦蹦跳

题目描述:

调皮的小明将皮球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求它在第N次落地时,共经过了多少米,第N次反弹多高。

输入

10

输出

length=299.6094
high=0.0977

示例

#include<iostream> 
using namespace std; 
int main() {
	double length=100,longg=50;
	int n;
	cin>>n;
	for(int i=1;i<n;i++) {
		length+=longg*2;
		longg/=2;
	}
	printf("length=%.4fnhigh=%.4f",length,longg);
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>