P1008 三连击
题目描述
将1,2,⋯,9共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。
代码
#include <iostream>
int main()
{
using namespace std;
for (int i = 123; i <= 333; i++)
{
int j = 2 * i;
int k = 3 * i;
if ((i / 100) + (i / 10 % 10) + (i % 10) + (j / 100) + (j / 10 % 10) + (j % 10) + (k / 100) + (k / 10 % 10) + (k % 10) == 45 && (i / 100) * (i / 10 % 10) * (i % 10) * (j / 100) * (j / 10 % 10) * (j % 10) * (k / 100) * (k / 10 % 10) * (k % 10) == 362880)
cout << i << " " << j << " " << k << endl;
}
return 0;
}
P1035 级数求和
题目描述
已知:S_n= 1+1/2+1/3+…+1/n。显然对于任意一个整数 k,当 n 足够大的时候,Sn>k。
现给出一个整数 k,要求计算出一个最小的 n,使得 Sn>k。
代码
#include <iostream>
int main()
{
using namespace std;
int k;
int n;
double sum = 0;
cin >> k;
for (n = 1; sum <= k; n++)
sum += (double)1 / n;
cout << n - 1 << endl;
return 0;
}
P1423 小玉在游泳
题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
代码
#include <iostream>
int main()
{
using namespace std;
double meter;
cin >> meter;
int step;
double destance = 2;
double sum = 0;
for (step = 0; sum < meter; step++)
{
sum += destance;
destance *= 0.98;
}
cout << step << endl;
return 0;
}
P1424 小鱼的航程(改进版)
题目描述
有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周x(1≤x≤7) 开始算起,过了n(n≤106) 天以后,小鱼一共累计游泳了多少公里呢?
代码
#include <iostream>
int main()
{
using namespace std;
int x;
int n;
int destance = 0;
cin >> x >> n;
for (int i = 0; i < n; i++, x++)
{
if (x != 6 && x != 7)
destance += 250;
if (x == 7)
x = 0;
}
cout << destance << endl;
return 0;
}
P1980 计数问题
题目描述
试计算在区间 1 到 n的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。
代码
#include <iostream>
int main()
{
using namespace std;
int n;
int x;
int t;
int b;
int count = 0;
cin >> n >> x;
for (int i = 1; i <= n; i++)
{
t = i;
while (t != 0)
{
b = t % 10;
t = t / 10;
if (b == x)
count++;
}
}
cout << count << endl;
return 0;
}