第五次作业

最大公约数和最小公倍数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}

int main(){
int a,b;
cin>>a>>b;
int c=gcd(a,b);
cout<<c<<" "<<a*b/c<<endl;
return 0;

}

2.写一个函数,由键盘输入一个数,输出其是否为素数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<cmath>
using namespace std;
bool prime(int a){
if(a==1) return 0;
if(a==3||a==2) return 1;
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0)
{
return 0;
}
}
return 1;
}
int main(){
int a;
cin>>a;
if(prime(a)){
cout<<a<<"是素数"<<endl;
}else{
cout<<a<<"不是素数"<<endl;
}
}

3.写一个函数,将输入的一个字符串按反序存放。在主函数中输入和输出字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
string inv(string a){
string b;
int len=a.size();
for(int i=len-1,j=0;i>=0;i--,j++){
b.push_back(a[i]);
}
return b;
}
int main(){
string a,b;
cin>>a;
b=inv(a);
cout<<b;
return 0;
}

实现一个简单的计算器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
using namespace std;
int add(int a,int b){
return a+b;
}
int minu(int a,int b){
return a-b;
}
int mul(int a,int b){
return a*b;
}
int chu(int a,int b){
return a/b;
}
int main(){
int a,b,result;
char c;
cin>>a>>c>>b;
switch(c){
case '+': result=add(a,b);break;
case '-': result=minu(a,b);break;
case '*': result=mul(a,b);break;
case '/': result=chu(a,b);break;
}
cout<<result<<endl;
return 0;
}

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
int main(){
int i;
int j=1;
int x;
while(1){
x=4*j;
for(i=0;i<5;){
if(x%4!=0)break;
else{
x=(x/4)*5+1;
i++;
}
}
j++;
if(i==5)break;
}
printf("%d",x);
return 0;
}