一个FLAG #13# V字型数列

完整题目见参考[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博客

 

原文地址:https://www.cnblogs.com/xkxf/p/12673546.html