jiangmuran @ 2022-06-06 22:07:27
这道题目我使用了long存储,但是只要超出了long的范围变成了负数,就会发生连锁反应。代码:
#include<iostream>
#include <cmath>
using namespace std;
int main(){
long a;
cin >> a;
while (a!=1)
{
cout << a;
if (a%2 == 0)
{
cout << "/2=";
cout << a/2 << endl;
a/=2;
}
else
{
cout << "*3+1=";
cout << a*3+1 << endl;
a=a*3+1;
}
}
cout << "End" << endl;
}
改进方法:\
1.使用long long类型,但不能根除问题(虽然过题目的话long就够了
,但谁也说不准有人会拿这个程序输入什么
但是如果输入特别大的数字,还是会出现问题,所以不能根除)\
2.加一个条件判断(把用户卡住死),这个方法比较简单,但是用你程序的人可能会拿大刀追你。
by jiangmuran @ 2022-06-06 22:08:17
我疯了,明明在编辑界面打一个\是换行,怎么发出来就没了???
by 3a51_ @ 2022-06-06 22:12:48
高精度
by 晴空一鹤 @ 2022-06-06 22:15:03
???
如果有人给你输入日文,你的程序除了终止还能做什么(
而且评测机不会这么凶残的
by 晴空一鹤 @ 2022-06-06 22:17:36
实在不行用Python
by Zvelig1205 @ 2022-06-07 06:50:04
这算tlqtj吗?
by jiangmuran @ 2022-06-07 11:13:11
我发现如果用long long的话输到缓冲区的最大值也能处理。。。。 所以:long long无敌