Data Types and Variables

Здравейте,

Някой може ли да ми разясни как се решава тази задача, прочетох целия материал, на “Data Types and Variables”, но никъде не видях да обясняват как се взимат данни от различна позиция.

Благодаря предварително.

Sum Digits

Write a program that reads a four-digit number and displays the sum of its digits

  • 1213 => 1 + 2 + 1 + 3 = 7
  • 2346 => 2 + 3 + 4 + 6 = 15

Input

  • On the first line, you will receive the four-digit number N

Output

  • On the only line of output, print the sum of digits

Constraints

  • 1000 <= N <= 9999

Input

2346

Output

15

Решава се с модулно деление , този материал го има в Data Types and Variables.
Като constraint ти е дадено ,че числата ще бъдат между 1000 и 9999 , което означава, че винаги ще е четири цифрено число. Така ако приемем ,че числото ,което трябва да въведеш е кръстено “num” ,то първото число ще ти бъде num1 = num / 1000 % 10; , второто число num2 = num / 100 % 10; и тн. След това си правиш променлива sum , която да ти събира num1 + num2 + num3 + num4 и да го изпринти в конзолата.

int num = int.Parse(Console.ReadLine());
            string numStr = num.ToString();
            int sum = 0;

            for (int i = 0; i < 4; i++)
            {
                sum += int.Parse(numStr[i].ToString());
            }
            Console.WriteLine(sum);

Друг вариант подобен на колегата с модулно деление:

int num = int.Parse(Console.ReadLine());

            int fNum = num % 10;
            num /= 10;
            int sNum = num % 10;
            num /= 10;
            int tNum = num % 10;
            num /= 10;

            Console.WriteLine(fNum + sNum + tNum + num);

Да, предполага се ,че щом е на Data Types and Variables ,все още не е стигнал масивите :smiley:

Ето още едно решение със substring method :

import java.util.Scanner;
public class SumDigits {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String n = scanner.nextLine();
        int sum = 0;

        for (int i = 0; i < n.length(); i++) {
            String digitStr = n.substring(i, i+1);
            int digit = Integer.parseInt(digitStr);
            sum += digit;
        }

        System.out.println(sum);
    }
}