题
完整题目见参考[1]。
#include <iostream> #include <cstdio> using namespace std; int main() { int T, n, num; // 数据组数,商品种数,种商品的数量 float price, sum; // 某种商品的价格,某组数据的总价 cin >> T; while (T--) { sum = 0; cin >> n; for (int i = 0; i != n; ++i) { scanf("%f %d", &price, &num); // double 则为 %lf sum += price * num; } printf("%.2f ", sum); // double 则为 %.2lf } return 0; }
V字型数列 - 穷举法。完整题目见参考[3]。
#include <iostream> #include <cstdio> using namespace std; const int MAXN = 20; int a[MAXN]; int main() { int T; // 数据组数 cin >> T; while (T--) { int n, cnt = 0; // 数列长度,v字形数列的个数 scanf("%d", &n); if (n < 3) { printf("cnt: 0 "); continue; } for (int i = 0; i != n; ++i) { scanf("%d", a + i); // 同 &a[i] 的写法 } for (int i = 0; i != n - 2; ++i) { for (int j = i + 1; j != n - 1; ++j) { for (int k = j + 1; k != n; ++k) { if (a[i] > a[j] && a[j] < a[k]) cnt++; } } } printf("cnt: %d ", cnt); } return 0; }
V字型数列 - 还是穷举。
for (int i = 0; i != n - 2; ++i) { for (int j = i + 1; j != n - 1; ++j) { if (a[i] > a[j]) { for (int k = j + 1; k != n; ++k) { if (a[j] < a[k]) cnt++; } } } }
参考
[1] 【题目】Problem A.超市结账_Java_漆黑梦工厂-CSDN博客
[2] 循环内还是循环外定义变量更好?
[3] 【题目】Problem B.V字型数列_Java_漆黑梦工厂-CSDN博客