1.找最小值
#include<iostream>
using namespace std;
const int N = 110;
int a[N];
int main()
{
int n; cin >> n;
for (int i = 1; i <= n; i++)cin >> a[i];
int min = a[1];
for (int i = 2; i <= n; i++)
{
if (a[i] < min)min = a[i];
}
cout << min;
return 0;
}
2.分类平均
#include<iostream>
using namespace std;
const int N = 110;
int a[N];
int main()
{
int n, k; cin >> n >> k;
int a = 0, b = 0;//a b 类
int cnt1 = 0, cnt2 = 0;
for (int i = 1; i <= n; i++)
{
if (i % k == 0)
{
a += i;
cnt1++;
}
else
{
b += i;
cnt2++;
}
}
double ans1 = a*1.0 / cnt1, ans2 = b*1.0 / cnt2;
printf("%.1lf %.1lf", ans1, ans2);
return 0;
}
3.一尺之棰
#include<iostream>
using namespace std;
const int N = 110;
int a[N];
int main()
{
int a; cin >> a;
int i = 1;
while (a > 1)
{
a /= 2;
i++;
}
cout << i;
return 0;
}
4.数字直角三角形
#include<iostream>
using namespace std;
const int N = 110;
int a[N];
int main()
{
int n, cnt = 0; cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j = i; j <= n; j++)
{
cnt++;
if (cnt < 10)
{
cout << "0";
}
cout << cnt;
}
cout << endl;
}
return 0;
}
5.阶乘之和(高精度,这题先空着)
6.计数问题
#include<iostream>
using namespace std;
int main()
{
int n, x; cin >> n >> x;
int cnt = 0;
for (int i = 1; i <= n; i++)
{
int j = i;
while (j != 0)
{
if (j % 10 == x)cnt++;
j /= 10;
}
}
cout << cnt << endl;
return 0;
}
7.级数求和
#include<iostream>
using namespace std;
int main()
{
int i,k; cin >> k;
double sn = 0.0;
for (i = 1; sn <= k; i++)
{
sn += 1.0 / i;
}
cout << i - 1;
return 0;
}
8.金币
#include<iostream>
using namespace std;
int main()
{
int k,c = 1; cin >> k; int sum = 0;//c为增加的金币数量
/*1+2+2+3+3+3*/
for (int i = 1; i <= k; i++)
{
k -= i; sum += c * c; c++;
}
cout << sum + k * c;
return 0;
}
9.数列求和
#include<iostream>
using namespace std;
int s(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum += i;
}
return sum;
}
int main()
{
int n; cin >> n;
cout << s(n);
return 0;
}
10.质数口袋
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int iszs(int n)
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)return 0;
}
return 1;//是质数
}
int main()
{
int l; cin >> l; int sum = 0; int i = 1; int k = 0;
while (sum < l)
{
i++;
if (iszs(i))
{
sum += i;
k++;
a[k] = i;
}
}
if (sum > l)k--;
for (int i = 1; i <= k; i++)cout << a[i] << endl;
cout << k;
return 0;
}