C++ c++;中断语句不工作
我对这一点很陌生,我会尽量用图片等让这篇文章尽可能简单 我目前正在解决Kattis上的编程问题 在我的上一篇文章中,这个好人为我编辑了它,使它看起来很漂亮,它显示了编程问题的图片,但它似乎只让我显示了一个链接 我首先用java解决了这个问题,虽然我得到了正确的答案,但由于超过了时间限制,它无法被接受 < C++ > C++ C++,我把代码从java复制到C++,看起来C++中的中断语句的行为与java不同。p>C++ c++;中断语句不工作,c++,C++,我对这一点很陌生,我会尽量用图片等让这篇文章尽可能简单 我目前正在解决Kattis上的编程问题 在我的上一篇文章中,这个好人为我编辑了它,使它看起来很漂亮,它显示了编程问题的图片,但它似乎只让我显示了一个链接 我首先用java解决了这个问题,虽然我得到了正确的答案,但由于超过了时间限制,它无法被接受 < C++ > C++ C++,我把代码从java复制到C++,看起来C++中的中断语句的行为与java不同。p> 这是我的C++代码,当我找到答案时,需要循环完全中断,但是它一直在寻找更多答案。
这是我的C++代码,当我找到答案时,需要循环完全中断,但是它一直在寻找更多答案。在爪哇,循环很完美,有人知道为什么它不能在C++中工作吗?
#include <iostream>
using namespace std;
int main() {
int cases;
cin >> cases;
for (int i = 0; i < cases; i++)
{
int n;
cin >> n;
int sum = 0;
int digits = n;
while (digits > 0)
{
sum += digits % 10;
digits = digits / 10;
}
for (int j = n - 1; j >= 0; j--)
{
int sum2 = 0;
int digits2 = j;
while (digits2 > 0)
{
sum2 += digits2 % 10;
digits2 /= 10;
}
if(sum-1 == sum2)
{
cout << j << " " << endl;
break;
}
}
}
return 0;
}
#包括
使用名称空间std;
int main(){
int案例;
cin>>病例;
对于(int i=0;i>n;
整数和=0;
整数位数=n;
while(数字>0)
{
总和+=位数%10;
位数=位数/10;
}
对于(int j=n-1;j>=0;j--)
{
int-sum2=0;
int digits2=j;
而(数字2>0)
{
sum2+=数字2%10;
数字2/=10;
}
if(sum-1==sum2)
{
coutAFAICT,您的代码工作得很好,至少在break
语句方面是这样。我稍微修改了它,以打印出更多的信息(在遇到麻烦时这不是一个坏主意),现在它看起来是这样的:
#include <iostream>
using namespace std;
int main() {
int cases;
cin >> cases;
for (int i = 0; i < cases; i++)
{
int n;
cin >> n;
int sum = 0;
int digits = n;
while (digits > 0)
{
sum += digits % 10;
digits = digits / 10;
}
cout << "sum=" << sum << "\n";
for (int j = n - 1; j >= 0; j--)
{
int sum2 = 0;
int digits2 = j;
while (digits2 > 0)
{
sum2 += digits2 % 10;
digits2 /= 10;
}
if(sum-1 == sum2)
{
cout << "j=" << j << " " << endl;
break;
}
}
}
return 0;
}
它产生:
sum=15
j=12344
sum=30
j=6788
这就是你所期待的吗
-您可以在那里试验代码。另请参阅:
此外,还要计算出sum_digits()
您希望哪个循环打破“i”和“j”循环,还是两者都打破?我认为,它只打破了“j”循环。在线判断网站通常会超过时间限制,这意味着您的算法效率不够。请大胆思考O@vcloarec对不起,我应该说,我想打破j循环。@drescherjm是的,如果我想u,我需要一个更好的算法SE java,这就是我改为C++的原因。也许条件(SUM-1== SUM2)是不正确的…谢谢你的回复,是的,但是它不适合我,它打印出多个“j= xxxx”。.你知道为什么break语句不起作用吗?@Eric不,我不知道。你确定你运行的代码与发布的代码完全一致吗?你知道为什么break语句不起作用吗?我也不知道它是怎么起作用的。@drescherjm,是的,我知道了。谢谢你的帮助,我如何在这方面给人们打分>我不确定如何使用它。
sum=15
j=12344
sum=30
j=6788