【问题描述】
在数学上,有一个称为角谷猜想(最早由日本数学家角谷静夫提出)的经典题,其内容是:“对任意的正整数n,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到正整数值1”。请你编一个程序,根据输入的正整数n,输出以上运算过程。
【输入文件】(train.in)
输入数据仅一行包含一个正整数n(2≤n≤100)。
【输出文件】(train.out)
一行输出一次运算的算式,算式中除了运算符号、等号及数字以外不包含其它任何字符。
【输入样例】
3
【输出样例】
3*3+1=10
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
pascal 角谷猜想 在数学上,有一个称为角谷猜想(最早由日本数学家角谷静夫提出)的经典题,其内容是
答案:4 悬赏:70 手机版
解决时间 2021-02-12 10:26
- 提问者网友:放下
- 2021-02-12 02:32
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-02-12 03:05
repeat
if odd(n) then
begin
write(n,'*3+1=');
n:=n*3+1;
writeln(n);
end
else
begin
write(n,'/2=');
n:=n div 2;
writeln(n);
end;
until n=1;
if odd(n) then
begin
write(n,'*3+1=');
n:=n*3+1;
writeln(n);
end
else
begin
write(n,'/2=');
n:=n div 2;
writeln(n);
end;
until n=1;
全部回答
- 1楼网友:行雁书
- 2021-02-12 07:19
#include
using namespace std;
ifstream cin("train.in");
ofstream cout("train.out");
int main(){
long n;
cin>>n;
while(n
- 2楼网友:第四晚心情
- 2021-02-12 06:07
弄好了,
至于输入文件的问题,太久没玩,我都忘了
program train;
var
a,b:longint;
begin
readln(a);
while a<>1 do
begin
if (a div 2)=(a/2) then
begin
b:=a;
a:=a div 2;
writeln(b,'/2=',a);
end
else
begin
b:=a;
a:=a*3+1;
writeln(b,'*3+1=',a);
end;
end;
end.
- 3楼网友:愁杀梦里人
- 2021-02-12 04:39
'vb角谷猜想
dim snu%
snu=int(inputbox("在2-100内"."输入数字","9"))
do until snu/2 =1
if snu mod 2 <> 0 then
print str(snu)+"*3+1="+str(snu)
snu=snu*3+1
end if
print str(snu)+"/2="+str(snu/2)
snu=snu/2
loop
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯