Sn*= sum of integers dividable by 11, write a script program that inputs a large positive integer M, computes the smallest integer n∗such that Sn∗> M, then displays n∗and Sn∗.

1 次查看(过去 30 天)
I am honestly so lost with this question, because 1) the wording is awful and 2) I just don't get while loops. The full question is "Let Sn be the sum of integers that are between 1 and n and are dividable by 11. Write a script program that inputs a large positive integer M, computes the smallest integer nsuch that Sn> M, then displays nand Sn." I have this so far.
%Small integer
M=input('Enter number M:');
n=1;
rem(n,11)=0;
while Sn<=M
if rem(n,11)==0
end
n=n+1;
Sn=n;
end
Sns=Sn;
ns=n;
fprintf('ns=%f\n', ns)
fprintf('Sns=%f\n', Sns)
I just don't know what else to put

回答(1 个)

Dyuman Joshi
Dyuman Joshi 2022-9-22
编辑:Dyuman Joshi 2022-9-22
You have done quite well despite your limited understanding of the question. Your code requires only a few modifications -
%M=input('Enter number M:');
%random large positive integer
M=123456;
%initiating the sum as 0
Sn=0;
n=1;
while Sn<=M
if rem(n,11)==0
Sn=Sn+n;
end
n=n+1;
end
fprintf('n=%d\n', n)
n=1651
fprintf('Sn=%d\n', Sn)
Sn=124575
We can verify this as well
y=11.*(1:n/11);
sum(y)
ans = 124575
  6 个评论
Jason
Jason 2022-9-22
I don't, sorry. I googled it and it said something about having a variable in the code being displayed but not computed, or something like that.
Torsten
Torsten 2022-9-22
编辑:Torsten 2022-9-22
rem is treated as an array in your code, not as a function. Thus somewhere you must have created an array called "rem".
E.g. the line
rem(n,11)=0;
(which makes no sense) would do this.
If you just had copied @Dyuman Joshi 's code, you had no problems.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by