数模实验作业3

1( 50分 )
打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身,(例如:1^3 + 5^3+ 3^3 = 153)。

function f1
x=100:999;
a=mod(x,10);
b=(x-a)/10;
c=mod(b,10);
d=(b-c)/10;
y=d.^3+a.^3+c.^3;
for i=1:900
    if y(i)==x(i)
        disp(y(i));
    end
end

2( 50分 )
3x+1猜想:任意输入一大于1的正整数,如果是奇数,则乘以3再加1;如果是偶数,则除以2。得到的结果,再继续按上述规则一直计算下去,必定会得到1。

请编程验证此猜想,要求程序运行后可实现屏幕提示“请任意输入一大于1的正整数:”,当输入一大于1的正整数后,显示每一步计算结果,如果得到1,则结束,并显示“猜想成立”。

x=input('请任意输入一大于1的正整数:');
while 1
    if rem(x,2)==1
        fprintf('%d*3+1=%d\n',x,x*3+1);
        x=x*3+1;
    else
        fprintf('%d/2=%d\n',x,x/2);
        x=x/2;
    end 
    if x==1
        fprintf('猜想成立\n');
        break;
    end
end

猜你喜欢

转载自blog.csdn.net/qq_45745322/article/details/115003983