首页 > 其他 > 详细

一个FLAG #13# V字型数列

时间:2020-04-11 10:09:59      阅读:55      评论:0      收藏:0      [点我收藏+]

完整题目见参考[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\n", 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\n");
            continue;
        }
        for (int i = 0; i != n; ++i) {
            scanf("%d", a + i);    // 同 &a[i] 的写法    
        }
        
        int i = 0, j = 1, k = 2;
        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\n", cnt);
    }
    return 0;
}

 

V字型数列 - 还是穷举。

        int i = 0, j = 1, k = 2;
        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博客

 

一个FLAG #13# V字型数列

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!