问题描述
问题 - 一名士兵想在商店购买香蕉。他必须为第一个香蕉支付 k 美元,为第二个香蕉支付 2k 美元,依此类推(换句话说,他必须为第 i 个香蕉支付 i·k 美元)。
他有 n 美元。他要向他的朋友士兵借多少钱才能买香蕉?
输入 - 第一行包含三个正整数k,n,w(1 ≤ k,w ≤ 1000,0 ≤ n ≤ 109),第一个香蕉的成本,初始数量的美元他想要的香蕉。
输出 - 输出一个整数——士兵必须从他的朋友那里借的美元数量。如果他不用借钱,输出0。
测试用例输入 - 3 17 4 测试用例输出 - 13
不幸的是,他们只给出了 1 个示例测试用例。 CodeForces 链接 - https://codeforces.com/problemset/problem/546/A
我的代码 -
int main()
{
int k,w,s;
cin >> k >> n >> w;
for(int i=1;i<=w;i++){
s = s+i*k;
}
cout << s-n; //line 11
return 0;
}
CodeForces 编译器给出输出 = 543968169。 在第 11 行,该编译器给出错误 - “未初始化的值使用”。 我该如何解决这个问题?
解决方法
您在未初始化的情况下使用了变量 s
的值。
s
是非静态局部变量,所以它是默认初始化的,这意味着不会对 int
进行初始化。
在循环之前将其初始化为适当的值以解决问题。