建议以及感受
- 比赛当天网站直接崩溃,体验极差,直到中午才修好
- 有些题意的输入输出并不明确
- 在线IDE不完善也不好用,很多bug详见竞赛讨论贴
- 完赛没有官方题解,或者说讨论题解的人很少
- 领取奖励还需要撰写一篇比赛相关的博客,有点捆绑的意思,初心可能是为了让大家写题解?
- 总共参加三次竞赛感受都不好,暂时不会参加CSDN竞赛了,转力扣
题解
题目一
寻找因子个数为n的最小整数x
输入描述:输入整数n。(1<=n<=1000)
输出描述:输出x。
示例1:
输入 3,输出 4;
解释:因子个数为3的最小整数为4,4具有3个因数,分别为:1,2,4
#include<iostream>
#include<cstring>
using namespace std;
int ans[1000010],cnt[1000010];
int main (){
std::ios::sync_with_stdio(false);
memset(ans,-1,sizeof(ans));
for(int i = 1; i <= 1000005;i++){
for(int j = i;j <= 1000005;j+=i){
cnt[j]++;
}
if(ans[cnt[i]]==-1)
ans[cnt[i]]=i;
}
int n;
cin>>n;
cout<<ans[n]<<endl;
}
题目二
X国发行货币最高面额为n。 次高面额为n的因子。 以此类推。 X国最多发行多少种货币。
输入描述:输入整数n。(1<=n<=1000000) 表示货币的最大面额
输出描述:输出货币的种类。
示例1:输入 10,输出 3
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str_0 = scan.nextLine().trim();
int n = Integer.parseInt(str_0);
scan.close();
int result = solution(n);
System.out.println(result);
}
public static int solution(int n) {
int result = 0;
while (n != 1) {
result++;
for (int i = 2; i <= n; i++) {
if (n % i == 0) {
n /= i;
break;
}
}
}
result++;
return result;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)