第一题:金币
题解:
#include<iostream>
using namespace std;
int main()
{
int k, sum = 0, day=0, coin = 1;
cout << "请输入一个正整数k:" << endl;
cin >> k;
for (day = 0; day + coin <= k; day += coin, coin++)
{
sum += coin * coin;
}
sum += (k - day) * coin;
cout << sum << endl;
system("pause");
return 0;
}
第二题:数列求和
题解:
#include<iostream>
using namespace std;
int main()
{
int S = 0, n = 0;
cout << "请输入一个正整数n:" << endl;
cin >> n;
for (int i = 1; i <= n; i++)
{
S += i;
}
cout << S << endl;
system("pause");
return 0;
}
第三题:质数口袋
题解:
01、
#include<iostream>
using namespace std;
bool func(int k) //判断是否是素数
{
if (k == 1)
{
return false;
}
for (int i = 2; i < k; i++)
{
if ( k % i== 0)
{
return false;
}
}
return true;
}
int main()
{
int L, S = 0, num = 0;//S:素数之和 num:素数的个数
cout << "请给出L:" << endl;
cin >> L;
for (int i = 1; ; i++)
{
if (func(i))
{
if (S + i <= L)//判断加上该素数后是否超过负载量
{
cout << i << endl;
S += i;
num++;
}
else
break;
}
}
cout << num << endl;
system("pause");
return 0;
}
02、
#include<iostream>
using namespace std;
int main()
{
int L, S = 0, num = 0;//S:素数之和 num:素数的个数
cout << "请给出L:" << endl;
cin >> L;
for (int i = 2;i<L ; i++)
{
int mark = 0;//初始化标记变量mark,判断i是否为素数
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
mark = 1;//mark标记为1,说明不是素数
break;
}
}
if (mark == 0)
{
if (S + i <= L)
{
cout << i << endl;
S += i;
num++;
}
else
break;
}
}
cout << num << endl;
system("pause");
return 0;
}