2020/8/2号,大湾区CCF比赛举行。(本人U15组)
试题的B卷,是完善程序题,请求各位给个估分吧~
T1;题意描述:
小明拿来了一堆数字,他想让你找出质因子最大的那个数。
输入一个数n,表示有n个数,接着输入n个数,表示小明的一堆数。
输入样例:4 36 38 40 42
输出样例:38
本人代码:
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int isprime(int n){
int ans=0;
for(int i=1;i<=n;i++){
if(n%i!=0)ans++;
}
if(ans==n)return true;
else return false;
}
int main(){
int n,a[5000],c[5000],b[1000],d[5000];
int ans=0;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for (int i=1; i<=n; i++) {
for (int j=1;j<=a[i];j++) {
if(a[j]%j==0){
if(isprime(j)==true){
b[j]=j;
}
sort(b+1,b+a[i]+1);
c[i]=b[a[i]];
d[i]=a[i];
}
}
sort(c+1,c+n+1);
ans=c[n];
for(int i=1;i<=n;i++){
if(ans==c[i])ans=i;
}
}
cout<<a[ans];
return 0;
}
T2十分简单,给定一个字符串,判断这个字符串是否为回文字符串。如果是,输出yes,不是,输出no。
本人代码:
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int main(){
char a[100];
int ans=0;
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n/2;i++){
if(a[i]==a[n-i+1])ans++;
}
if(ans==n/2)cout<<"yes";
else cout<<"no";
return 0;
}
两道题的时间限制均为2s,内存限制256mb
测试点个数:不知道
单个测试点分数:不知道
两道题一题100分,总分200
帮个忙啦~谢谢