Создание функции, которая суммирует цифры в числе - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь написать функцию Matlab, чтобы при вводе 3-значного числа она суммировала все числа в указанном входе.

Например, если на входе 213, на выходе должно быть 6. Если на входе 456, на выходе должно быть 15. Функция должна работать для любого трехзначного числа.

Есть идеи, как это начать?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Вы можете использовать модуль по 10 и сохранить счетчик:

function total = sumDigits(number) 
    total = 0;
    while(number > 0)
      total = total + mod(number, 10);
      number = floor(number / 10);
    end
end
0 голосов
/ 08 июня 2018

Попробуйте что-нибудь подобное.Он использует хитрость, вычитая эквивалент числа ASCII каждой цифры.Преимущество в том, что это всего одна строка.

>> sum(num2str(213)-'0')

ans =
     6

>> sum(num2str(456)-'0')    
ans =    
    15

РЕДАКТИРОВАТЬ: Чтобы сделать это функцией, просто сделайте это

function out = sumTheDigits(in)
out = sum(num2str(in)-'0') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...