计算比n小,能被7或3整除,并且十位上的数被3除余1的三个较大整数之和的...
发布网友
发布时间:2024-01-02 14:12
我来回答
共1个回答
热心网友
时间:2024-08-29 21:06
编了一个MatLab的函数,可以直接出结果,并对各语句进行了注释,自己可以去试试
clear all; close all; clc; delete *.asv;
disp('请输入一个整数n!');
n = input(''); %如题所说的任意输入一个整数
NmatchNum = 0; %统计满足条件的数字
for i = 1:n
if (rem(i,3) ==0 )|| (rem(i,7) ==0 ) %先判断小于n的数字i是否能被3或者7整除
if rem( fix((i-fix(i/100)*100)/10),3) == 1
%此句判断句包含三个过程
%1、i-fix(i/100)*100作用是得到i的10位和个位上的数
%2、该数字除以10取商便是i的十位上的数字
%3、使用余数函数rem判断十位上的数字是否除以3余1
%当以上的所有条件都满足的时候,满足条件的个数NmatchNum就要加1
%同时将该数字i存放到MatchData中
NmatchNum = NmatchNum + 1;
MatchData(NmatchNum) = i;
end
end
end
sortMaxData = sort(MatchData); %使用排序函数sort对数据进行排序
%此处由于是按照大小顺序输出数字的,因此MatchData本身就是从小到大。
%也就是sort函数并未发生具体作用。仅作为其他情况的预防。
YourNeedAns = sum(sortMaxData(end-2:end));%排序后的最后三个数字即为所求
disp('满足条件的最大的三个数的和为:');
disp(YourNeedAns);