Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何测试我的算法,解决;“鲜花”;街头挑战访谈_C++_Algorithm - Fatal编程技术网

C++ 如何测试我的算法,解决;“鲜花”;街头挑战访谈

C++ 如何测试我的算法,解决;“鲜花”;街头挑战访谈,c++,algorithm,C++,Algorithm,我正在InterviewStreet解决挑战“鲜花”: 你和你的K-1朋友想买N朵花。我有多少花 主机ci。不幸的是,卖家不喜欢客户购买商品 很多花,所以他试图改变花的价格 以前买过花的顾客。更确切地说,如果客户 已经买了x朵花,他应该付(x+1)*ci美元去买 花一号 你和你的K-1朋友想以这样一种方式购买所有的N朵花 你花尽可能少的钱 但我的解决方案是通过测试用例:3、5和7 所以我的分数是7/10 我已经彻底测试了我的代码,它一直在给我正确的答案,所以我不明白为什么我没有在这个挑战中获得满

我正在InterviewStreet解决挑战“鲜花”:

你和你的K-1朋友想买N朵花。我有多少花 主机ci。不幸的是,卖家不喜欢客户购买商品 很多花,所以他试图改变花的价格 以前买过花的顾客。更确切地说,如果客户 已经买了x朵花,他应该付(x+1)*ci美元去买 花一号

你和你的K-1朋友想以这样一种方式购买所有的N朵花 你花尽可能少的钱

但我的解决方案是通过测试用例:3、5和7 所以我的分数是7/10

我已经彻底测试了我的代码,它一直在给我正确的答案,所以我不明白为什么我没有在这个挑战中获得满分

基本上,我所做的是,如果有比花更多或相等的朋友要买,我会退还花的价格总和

如果有比朋友更多的花要买,那么我会把花的价格按顺序分类(从贵到便宜),让朋友一次买一朵

typedef unsigned long long int uint64;
uiRemainder = n % k;

    sort(viFlowersCost.begin(), viFlowersCost.end(), greater<int>()); //Sorted Array Descending

    if(uiRemainder == 0) {
            for(a = 0; a < n; a+=k) {
                    for(b = 0; b < k; ++b) {
                            ui64Result += (x+1)*viFlowersCost[a+b];
                    }
            ++x;
            }
    } else {
            for(a = 0; a < (n/k)*k; a+=k) {
                    for(b = 0; b < k; ++b) {
                            ui64Result += (x+1)*viFlowersCost[a+b];
                    }   
                    ++x;
            }   
            for(b = 0; b <= uiRemainder; ++b) {
                    ui64Result += (x+1)*viFlowersCost[a+b];
            }   
    }   

    cout<<ui64Result;
typedef无符号长整数uint64;
Ui剩余=n%k;
排序(viflowscost.begin(),viflowscost.end(),greater())//排序数组降序
如果(uirements==0){
对于(a=0;a对于(b=0;b你所说的排序在哪里?就在上面一行,
std::sort
viFlowersCost就是
std::vector
我刚刚尝试了一个约束输入。1000朵从1000000到10000000的花仍然在抛出正确的答案。你为什么需要根据UIF的余数做一个if呢?看起来很好UIRequires允许我将问题分成若干组,如果n是K的倍数,那么它将是n/K组。否则,我需要反复迭代的将是(n/K)*K+mod(n/K)组……用语言来解释有点困难,视觉上更容易理解。