Crooked Digits

tasks

#1

Hey, написах този код и не мога да разбера защо не мога да parse-na този string n към int :

import java.util.Scanner;

public class Crooked_digits {
public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    String n = input.nextLine();
   n= n.replace("-", "");
   n = n.replace(".", "");

int sum = 0;
int j = 0;
int f = 0;
int sum2 = 0;
int x = Integer.parseInt(n);

  while(x > 0)
    {
        j = x % 10;
        sum = sum + j;
        x = x / 10;
    }


     if (sum < 10){

         System.out.println(sum);
     }
        else

      while (sum > 9){

          f = sum % 10;
          sum2 = sum2 + f;
          sum = sum/ 10;
          System.out.println(sum2);
      } }}

#2

Здрасти, погледна ли това

The number N will have no more than 300 digits before and after the decimal point

, малко трудно ще се събере в Integer :slight_smile:


#3

Thanks! , с long се parse-na правилно, но пък в код след това явно също имам грешка, защото отговорите не излизат :thinking:


#4

Не излизат, защото целта не е да го парснеш към число, а да го разглеждаш като стринг.


#5

Отново файл-на кода , този път с 60/100 точки. Погледнах editorial-a и мисля, че теоретично правя (очевидно не обаче)

import java.util.Scanner;
public class Crooked_digits {
public static void main(String[] args) {

    Scanner input = new Scanner(System.in);
    String n = input.nextLine();
    n = n.replace("-", "");
    n = n.replace(".", "");

    int sum = 0;
    int sum2 = 0;
    int sum3 = 0;
    int y = 0;

    int i;
    for (i = 0; i < n.length(); i++) {

        char x = n.charAt(i);
        sum = sum + Integer.parseInt(String.valueOf(x));

    }

    if (sum < 10) {

        System.out.println(sum);
    } else if (sum > 9) {

        while (sum > 9) {

            y = sum % 10;
            sum2 = sum2 + y;
            sum = sum / 10;
        }

        if (sum2 + sum < 10) {
            System.out.println(sum2 + sum);

        } else if (sum2 + sum > 10 ) {

            sum3 = sum2 % 10 + sum2 / 10;
        System.out.println(sum3);

        }
    }
}

}


#6

Прочети си хубаво условието. Подсказвам задачата се решава с while.