数组的上半比分操作的优化

对于一个二维数组进行上半部分操作

求和 求avg

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;
const int N=1000;
double a[N][N];

int main()
{
    double tmp=0;
    char mod;
    cin>>mod;
    for(int i=0;i<12;i++){
        for(int j=0;j<12;j++){
            cin>>a[i][j];
        }
    }
    int cnt=11;
    int cnt1=0;
        //double tmp=0;
        //神来之笔 可以把一个O(N3)的循环优化到O(n2) 通过能尽量判断有多少变量需要变而多少变量又可以同时变来,那些一定不能同时变来优化时间复杂度
        while(cnt) {
            for (int j = cnt1 + 1; j < 12; j++) {
                tmp = tmp + a[cnt1][j];
            }
            cnt--;
            cnt1++;
        }
        
        
        
        if(mod=='S')printf("%.1f",tmp);
        else printf("%.1f",tmp/66);
    return 0;
}
posted @ 2022-10-07 02:26  E_sheep  阅读(25)  评论(0)    收藏  举报