1

Тема: Допоможіть початковому програмісту з алгоритмами та кодами

Потрібно знайти суму цифр числа N. Не можу написати правильний код програми. Маю лише початок, який працює, а решта не виходить.

2 Востаннє редагувалося User 298 (21.09.2014 23:27:40)

Re: Допоможіть початковому програмісту з алгоритмами та кодами

Сам код:

#include <conio.h>        
#include <iostream>
#include <cmath>
#include <math.h>
    using std::cout;
    using std::endl;
    using std::cin;
    using std::ios_base;

    int main()
    {
        setlocale(LC_ALL, "Russian");            
 cout << "Знайдем суму цифр числа N" << endl;
unsigned long long result = 0, N,n;
cout << "Введите число N=";cin >> N;

 /*for (int i(0); i <=N; i++)
        result+=i;
        cout<<"Сума цифр числа N="<< result << endl;*/
if(N<=9){result=N;cout<<"Сума цифр числа N="<< result << endl;}
else(N>9);
{

}
    
    _getch();    
    return 0;    
    }

Bartash: Код слід брати у теги [ code ].

3 Востаннє редагувалося muroclav (21.09.2014 14:34:17)

Re: Допоможіть початковому програмісту з алгоритмами та кодами

На жаль VisualStudio я ще не поставив, тому ось реалізація на Java.

Код
package test;

import java.util.Random;
/**
 *
 * @author Myroslav
 */
public class Test {
    public static void main(String[] args) {
        Random rand = new Random();
        Integer n = rand.nextInt(1000)+10;
        String ns = n.toString();
        System.out.println("int " + n);
        Integer suma=0;
        for(int i=0; i<ns.length(); i++)
        {  
            suma+=ns.charAt(i)-48;
        }
        System.out.println(suma);   
    }
}
Подякували: MiniProger1

4 Востаннє редагувалося Arete (21.09.2014 14:49:43)

Re: Допоможіть початковому програмісту з алгоритмами та кодами

В другому повідомленні добавте свій  код в блок "code" і відформатуєте його, бо так ніхто не захоче його читати.

Ось вам алгоритм для прикладу, з псевдокодом для кращого розуміння. Працює лише для додатніх чисел. Дуже не тестував тому можуть бути баги.

Алгоритм
/*
  Повертає суму всіх цифр числа.
  Якщо сумма складається з кількох цифр, то вони також сумуються між собою.
 */
int DigitAmount( int digits ) {
  // якщо число Д більше 9 то:
  if ( digits > 9 ) {
    // записуємо в число Р залишок від ділення числа Д на 10
    int result = digits % 10;
    // число Д ділимо на 10 ( без округлення )
    digits /= 10;
    // рекурсивно викликаємо фунцію Ф для числа Д і її результат добавляємо до Р
    result += DigitAmount( digits );
    // якщо число Р більше 9 то знаходимо його суму цифр
    if ( result > 9 )
      // рекурсивно викликаємо фунцію Ф і її результат присвоюємо Р
      result = DigitAmount( result );
    // повертаємо число Р як результат
    return result;
  }
  // інакше
  else
    // повертаємо число Д як результат
    return digits;
}
Подякували: MiniProger1

5

Re: Допоможіть початковому програмісту з алгоритмами та кодами

Дякую за відповідь, але я не вмію програмувати на Java. Лише вчусь на С++

6

Re: Допоможіть початковому програмісту з алгоритмами та кодами

Подякували: MiniProger1

7

Re: Допоможіть початковому програмісту з алгоритмами та кодами

і на php

<?PHP
(int)$N = '1234563';
for($i=0; $i<=strlen($N); $i++) 
$sum+=$N[$i];
echo $sum;