matlab 2到100整数怎样写成多个连续整数的和如:6=1+2+3;15=1+2+3+4+5;或15=4+5+6;或15=7+8;最好有注释啊
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 05:32:20
![matlab 2到100整数怎样写成多个连续整数的和如:6=1+2+3;15=1+2+3+4+5;或15=4+5+6;或15=7+8;最好有注释啊](/uploads/image/z/10341298-10-8.jpg?t=matlab+2%E5%88%B0100%E6%95%B4%E6%95%B0%E6%80%8E%E6%A0%B7%E5%86%99%E6%88%90%E5%A4%9A%E4%B8%AA%E8%BF%9E%E7%BB%AD%E6%95%B4%E6%95%B0%E7%9A%84%E5%92%8C%E5%A6%82%EF%BC%9A6%3D1%2B2%2B3%EF%BC%9B15%3D1%2B2%2B3%2B4%2B5%EF%BC%9B%E6%88%9615%3D4%2B5%2B6%EF%BC%9B%E6%88%9615%3D7%2B8%EF%BC%9B%E6%9C%80%E5%A5%BD%E6%9C%89%E6%B3%A8%E9%87%8A%E5%95%8A)
matlab 2到100整数怎样写成多个连续整数的和如:6=1+2+3;15=1+2+3+4+5;或15=4+5+6;或15=7+8;最好有注释啊
matlab 2到100整数怎样写成多个连续整数的和
如:6=1+2+3;15=1+2+3+4+5;或15=4+5+6;或15=7+8;最好有注释啊
matlab 2到100整数怎样写成多个连续整数的和如:6=1+2+3;15=1+2+3+4+5;或15=4+5+6;或15=7+8;最好有注释啊
这题的理解有点难度.不理解,写了也看不懂;理解了,很容易编好.
1、以95为例.
连续自然数的和写成乘积的形式就是(N-M+1)*(M+N)/2,其中M、N分别代表这一串数中的第一个和最后一个.
若(N-M+1)*(M+N)/2=95,则(N-M+1)*(M+N)=190
M+N和N-M+1均是190的约数(1、2、5、10、19、38、95、190).
列出方程组:
M+N=190,N-M+1=1(这样解出来就是一个95,舍去)
M+N=95,N-M+1=2,可以解出N=48,M=47
M+N=38,N-M+1=5,可以解出来N=21,M=17
M+N=10,N-M+1=19,解出N=14,M=5
因为M、N都是正整数,所以M+N一定大于等于N-M+1,另外四个方程就可以不列了.
这样一共可以解出M=47,N=48(47~48);M=17,N=21(17~21);M=5,N=14(5~14)三组答案.
因此95=47+48;或95=17+18+19+20+21;或95=5+6+...+14
2、设计思路.
(1)任一数,找出它的约数;
(2 )二元一次方程解
理解了之后,设计起来不难.
3、这里给出一个穷举法的小程序也能解决问题.也以95为例
clear all
clc
a=95
for k=2:a
sum=0;
for i=1:a;
sum=0;
for j=i:i+k-1
sum=sum+j;
end
if sum==a
fprintf('连续%d个正整数',k)
disp(i:i+k-1)
end
end
end
输出
a=95
连续2个正整数 47 48
连续5个正整数 17 18 19 20 21
连续10个正整数 5 6 7 8 9 10 11 12 13 14