关于 SIGTSTP 错误和无休止的输入
Regarding SIGTSTP error and unending input
下面的代码给出了SIGTSTP,但我找不到错误。原始问题链接为:https://codeforces.com/contest/102/problem/B。请帮忙。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,sum=0,count=0;
string s; cin>>s;
while(s.length()>1){
for(int i=0;i<s.length();i++){
x=s[i]-'0';
sum+=x;
}
s=std::to_string(sum);
count++;
}
cout<<count;
return 0;
}
假设输入是19
。
外循环的第一次迭代将使sum
等于10
,并将s
设置为"10"
。
外循环的第二次迭代(当s
"10"
时(将1
(和0
(添加到sum
,使其等于11
,所以当内循环结束时,s
变得"11"
。
外循环的第三次迭代会将2
(1
和1
(添加到sum
,因此sum
变得13
,s
变得"13"
。
以此类推,永远如此。
s
的长度永远不会等于(或小于(1
。这就导致了一个无限循环。由于超时,这可能会被在线系统停止。
我还没有阅读问题描述(将来请将其包含在问题中,以使您的问题独立存在(,但是您的算法是错误的,您需要重新考虑您的解决方案。很可能您应该重置sum
(即sum = 0;
( 在内部循环之前,或者更好地在内部循环中定义它:
int x,count=0;
string s; cin>>s;
while(s.length()>1){
int sum = 0;
for(int i=0;i<s.length();i++){
x=s[i]-'0';
sum+=x;
}
s=std::to_string(sum);
count++;
}
[我通过对代码进行橡皮鸭调试来推理我]
相关文章:
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 关于 SIGTSTP 错误和无休止的输入
- 宽藤会话更新无休止循环
- 为什么析构函数无休止地调用自己(导致堆栈溢出)?
- 在图像上覆盖文本的程序会产生无休止的字符串错误
- OpenSSL客户端陷入无休止的读取
- OpenGL/GLFW/GLM-键盘输入无反应
- 无休止的 do while 循环C++代码
- 使用用户输入(无矢量)从 For 循环打印图表
- 循环无休止地做
- 具有输入无符号字符缓冲区C++的设备 IoControl
- 卡死胡同-无休止的循环,没有解决方案
- C++:如果输入不是整数,为什么这段代码会运行一个无休止的循环
- C++无休止的循环瓶颈
- 这无休止地循环是否有明显的原因
- C++ & SDL:SDL 事件无休止地重复
- 静态分析工具,用于检测由于类型提升而导致的无休止循环
- c++:在修改c字符串数组时帮助纠正无休止循环
- std::advanced()导致无休止的循环
- SFML 2实时文本输入?(无事件循环)