版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lv414333532/article/details/82946316
如果一个n位正整数等于其各个数字的n次方和,则称该数为阿姆斯特朗数(也称自恋性数)。比如407 = 4^3+0^3+7^3就是一个阿姆斯特朗数,是编写一个函数文件判断输入的数是否为阿姆斯特朗数。
【分析】根据题意首先应分离出给定n位正整数的个位数字,然后根据题述条件进行判断。
function flag = isArmstrong(N) %flag为函数返回值,isAr为函数名,N为输入参数, 返回值 = 函数名(输入参数)
%m文件名要与函数名一致;
x=int2str(N)-'0'; %分离正整数
%2为英文里的to, int to str,把数值型转化为字符串并且小数部分,
%-‘0’,字符串的买个数字减字符‘0’,相当于右边为数值型,
%不减相当于字符串每一位的ASCALL码;
%str = int2str(A)将矩阵A中的元素x转换为整型,再把结果转换成一个字符串矩阵;
n=length(x); %计算向量或矩阵的长度
% y = length(x) 函数计算指定向量或矩阵的长度y。
%如果参数变量x是向量,则返回其长度;如果参数变量是非空矩阵,则length(x)与max(size(x))等价
flag = N == sum(x.^n); %x.^n 矩阵中的每个元素的n次幂,
% a=sum(x);%列求和
%a=sum(x,2);%行求和
%a=sum(x(:));%矩阵求和
%如果矩阵A为向量,则为所有元素之和;
end