所以,我正在进行在线挑战,这就是我要做的事情: 我必须输出魔法数字“N”。之后你输入“N”个数量的法术来形成魔法。
基本上,一个示例输入是:
5
3
2
1
1
0
这个的输出应该是2,因为魔法的3 + 2 = 5。但是,重要的注意事项(我遇到的问题是每个法术的值都是+1)
示例:
12
5
5
4
4
4
3
3
3
2
2
2
1
所以,5 + 5 = 10,但由于每个法术都有+1值,因此6 + 6 = 12。所以输出应该是2。
这是我的代码,但由于某种原因,它输出3。
#include <iostream>
using namespace std;
int main()
{
int n,c=0,br=0;
cin>>n;
int a[150];
for(int i=0;i<n;i++)
{
cin >> a[i];
a[i]+=1;
while(c<=n)
{
c+=a[i];
br++;
}
}
if(a[0]==n-1)
br--;
cout << br << endl;
return 0;
}
答案 0 :(得分:1)
使用通灵调试技巧:
while(c<=n)
表示法术总数小于或等于法术数量。
这意味着,它使用前5个法术,(总数为6),然后是第二个五个法术(总数为12),然后因为它仍然小于或等于法术数量(12),它使用前四个法术(总共现在是16个)。我想你想要c<n
而不是c<=n
。
无关:你的问题措辞严厉,几乎毫无意义。