matlab练习1

1、硅谷公司员工的工资计算方法如下:

A、工作时数超过120小时,超过部分加发15%

B、工作时数低于60小时,扣发700元

C、其余按每小时84元计发

试编程按输入的工号和该号员工的工时数,计算应发工资。

n=input('请输入工号:');
x=input('请输入工作时长:');
if x>120
    y=120*84+(x-120)*84*(1+0.15);
else if x<60
        y=x*84-700;
    else if x>=60&&x<=120
            y=x*84;
        end
    end
end
disp(y)

2、设计程序完成两位数的加减乘除四则运算,既产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。

x=round(rand*100);
y=round(rand*100);
disp([num2str(x),' ',num2str(y)])
z=input('请输入一个运算符号:','s');
if z=='+'
    o=x+y;
else if z=='-'
        o=x-y;
    else if z=='*'
            o=x*y;
        else if z=='/'
                o=x/y;
            end
        end
    end
end
disp(o)

3、若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如:2*3-1=5。由于5是素数,所以2,3是亲密数对,5是亲密素数。求[2,50]区间内的所有亲密数对,以及上述亲密数对所对应的所有亲密素数之和。

i=1;
t=0;
sum=0;
disp('亲密数对为:')
for x=2:49
    for i=1:(x*(x+1)-1)
    if mod(x*(x+1)-1,i)==0
        t=t+1;
      end
    end
    if t==2
        disp([num2str(x),' ',num2str(x+1)])
       sum=sum+(x*(x+1)-1);
        t=0;    
    else
        t=0;
    end 
end
disp(['亲密素数之和为:',num2str(sum)])

4、已知y=f(40)/[f(30)+f(20)]求1、当f(n)=n+10*ln(n^2+5)时,求y的值

                             2、当f(n)=1*2+2*3+3*4+...+n*(n+1)时,求y的值

写两个f函数:

1)

function [o]=f1(n)
o=n+10*(log(n^2+5));

end

2) 

function [o]=f2(n)
e=1;
for w=1:(n+1)
   e=e*w;
   o=e;

end

主程序里运行

y=f1(40)/(f1(30)+f1(20));
disp(y)

y=f2(40)/(f2(30)+f2(20));
disp(y)

 

5、日本数学家角谷提出一个著明的猜想:
任何一个大于1的自然数经过如下的有限步运算,最后结果为1
  (1)如果是偶数,将其除以2
  (2)如过是奇数,将其乘以3,再加上1

根据上面提供的猜想:建立M函数,以便方便的验证对不同自然数,角谷猜想是否正确。

function [o]=f5(n)
while n~=1
    if mod(n,2)==0
        n=n/2;
    else if mod((n+1),2)==0
            n=n*3+1;
        end
    end
end
    o=n;

end

6、写一程序求1!+2!+…+10! 

j=1;
sum=0;
for i=1:10
    j=j*i;
    sum=sum+j;
end
    disp(sum)    

 7、从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not  exist”。

A=zeros(1,10);
for i=1:10
    
    A(1,i)=input('请输入十个整数:');
    
end
for j=1:10
  if mod(A(1,j),7)==0
        disp(A(1,j));
        break
       
    end
    
     if j==10
         disp('not exist')
     end
                    
end

8、输入一个整数,写一程序输出它是几位数

这个题还是要注意abs取绝对值,然后fix的利用

i=0;
a=input('请输入一个整数:');
while 1
    a=abs(a/10);
    x=fix(a); 
    if x>0 
        i=i+1; 
    end
    if x==0 
        i=i+1; 
        break 
    end
end
disp(['此数为',num2str(i),'位数'])

你可能感兴趣的:(matlab,matlab)