这两道题还挺简单的,题解一定会有的哦~~~~【放心】
先看P5722:
题目描述
计算 1+2+3+⋯+(n−1)+n 的值,其中正整数 n 不大于 100。由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。
输入格式
输入一个正整数 n。
输出格式
输出一个正整数,表示最后求和的答案。
输入输出样例
输入 #1复制
100
输出 #1复制
5050
说明/提示
数据保证,1≤n≤100。
(ps:我的确没高斯clever,HA HA)
#include<iostream>
using namespace std;
int main()
{
int a=0,n;
cin>>n;
for(int i=1;i<=n;i++)
{
a+=i;
}
cout<<a;
return 0;
}
简单几行,轻松搞定!!!
NEXT ONE
题目描述
小 A 有一个质数口袋,里面可以装各个质数。他从 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。
口袋的负载量就是口袋里的所有数字之和。
但是口袋的承重量有限,装的质数的和不能超过 L。给出 L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数的个数,数字之间用换行隔开。
输入格式
一行一个正整数 L。
输出格式
将这些质数从小往大输出,然后输出最多能装下的质数个数。
输入输出样例
输入 #1复制
100
输出 #1复制
2
3
5
7
11
13
17
19
23
9
输入 #2复制
5
输出 #2复制
2
3
2
输入 #3复制
11
输出 #3复制
2
3
5
3
说明/提示
数据保证,1≤L≤105。
上代码!!
#include<bits/stdc++.h>
using namespace std;
int n,x;
long long sum=0;
int pd(int y) {
for(int i=2; i*i<=y; ++i) {
if(y%i==0) return 0;
}
return 1;
}
int main() {
scanf("%d",&n);
for(int i=2; i<=n; ++i) {
if(i%2==0&&i!=2) continue;
if(sum+i>n) {
printf("%d\n",x);
return 0;
}
if(pd(i)) {
printf("%d\n",i);
sum+=i;
x++;
}
}
return 0;
}
2607

被折叠的 条评论
为什么被折叠?



