昨天写的这两个题,运行结果是正确的 但是放到杭电上一直编译错误,浪费了好长时间找错误,结果今天又试了一遍都可以AC。。
2028
求n个数的最小公倍数。
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int hh(int m,int n){
int r;//余数
if(n>m){
r=n;
n=m;
m=r;//m,n互换 ,将大的作为被除数
}
int k1=m,k2=n;
while(n!=0){
r=m%n;
m=n;
n=r;
}//最大公约数为m
//最小公倍数=两数乘积/最大公约数
int h=(k1/m)*k2;//防溢出
return h;
}
int main(){
int n,a,b;
int i=0;
int t;//最小公倍数
int arr[1000];
while(cin>>n){
int len=0;
for(i=0;i<n;i++){
cin>>arr[i];
len++;
}
a=arr[0];
b=arr[1];
t=hh(a,b);
for(i=2;i<len;i++){
a=t;
b=arr[i];
t=hh(a,b);
}
printf("%d\n",t);
}
return 0;
}
2029
判断回文串
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main(){
int n;
string str;
cin>>n;
cin.get();
while(n--){
int flag=1;
getline(cin,str);
int i=0,j=str.size()-1;
while(i<j){
if(str[i]!=str[j]){
flag=0;
cout<<"no"<<endl;
break;
}
i++;
j--;
}//while
if(flag)
cout<<"yes"<<endl;
}
return 0;
}