文章目录
【深基4.例2】找最小值
题目描述
给出 n ( n ≤ 100 ) n(n\le100) n(n≤100) 和 n n n 个整数 a i ( 0 ≤ a i ≤ 1000 ) a_i(0\le a_i \le 1000) ai(0≤ai≤1000),求这 n n n 个整数中最小值是什么。
输入格式
输出格式
样例 #1
样例输入 #1
8
1 9 2 6 0 8 1 7
样例输出 #1
0
水题,无话可说,直接上代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a[100];
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n);
cout << a[0];
return 0;
}
【深基4.例3】分类平均
题目描述
给定 n ( n ≤ 10000 ) n(n\le10000) n(n≤10000) 和 k ( k ≤ 100 ) k(k\le 100) k(k≤100),将从 1 到 n n n 之间的所有正整数可以分为两类:A 类数可以被 k k k 整除(也就是说是 k k k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
数据保证两类数的个数都不会是 0。
输入格式
输出格式
样例 #1
样例输入 #1
100 16
样例输出 #1
56.0 50.1
水题,上代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k,a[10000];
double re1, re2, sum1 = 0, sum2 = 0, num1 = 0, num2 = 0;
cin >> n >> k;
for (int i = 0; i < n; i++)
a[i] = i + 1;
for (int i = 0; i < n; i++) {
if (a[i] % k == 0) {
sum1 += a[i];
num1++;
}
else {
sum2 += a[i];
num2++;
}
}
re1 = sum1 / num1;
re2 = sum2 / num2;
//cout << sum2 << " " << num2<<" "<<re2;
printf("%.1f %.1f", re1, re2);
return 0;
}
【深基4.例4】一尺之棰
题目描述
《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a ( a ≤ 1 0 9 ) a(a\le 10^9) a(a≤109) 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2,向下取整)。第几天的时候木棍会变为 1?
输入格式
输出格式
样例 #1
样例输入 #1
100
样例输出 #1
7
依旧是水题
#include <bits/stdc++.h>
using namespace std;
int main() {
int a,day=0;
cin >> a;
while (a != 1) {
a = a / 2;
day++;
}
cout << day+1;
return 0;
}
【深基4.例6】数字直角三角形
题目描述
给出 n ( 1 ≤ n ≤ 13 ) n(1\le n\le13) n(1≤n≤13),请输出一个直角边长度是 n n n 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0。
输入格式
输出格式
样例 #1
样例输入 #1
5
样例输出 #1
0102030405
06070809
101112
1314
15
补0的话记住直接输出,用字符数组来改变有点难,然后注意if判断数字小于0时别用i,因为每经历一次循环i就初始化为1了,所以开个新的变量从1开始,每循环一次加一,这样不会初始化了.
#include <bits/stdc++.h>
using namespace std;
int main() {
int a[1000];
int n;
cin >> n;
int s = n, k = 1;
for (int j = 1; j <= n; j++) {
for (int i = 1; i <= s; i++) {
if (k < 10) {
printf("0");
printf("%d", k);
}
else printf("%d", k);
k++;
}
printf("\n");
s--;
}
return 0;
}