2015-11-21 4 views
-1

привет, я использую кодовые блоки, и я новичок, Я хочу разделить число и умножить его цифры , а если число> 9, то еще раз хочу разделить цифры и умножить их, пример : если у меня есть номер 126, тогда новое число будет 1 * 2 * 6 = 12 , но 12 -> 9, то снова новое число равно 1 * 2 = 2, 2 не> 9, а затем выйти из цикла благодарякак разделить число и умножить его цифры?

+0

int num; int newnum = 1; printf ("Введите число \ n"); зсапЕ ("% d", &num); в то время (newnum> 9) { цифра = Num% 10; newnum * = цифра; Num/= 10; } @MadushanPerera Я знаю, что продолжать добавлять все результаты всех старых чисел на новый: \ –

ответ

0

пожалуйста, попробуйте эту программу:

public class B { 

    public static void main(String[] args) { 

     String number = "126"; 
     int c = 1; 
     for (int j = number.length() ; j >=0; j--) { 
     int v = j; 
      for (int i = 0; i < v; i++) { 
       String s = ""+number.charAt(i); 
       c = c* Integer.parseInt(s.trim()); 
      } 

      System.out.println("result is : "+c);  
      c = 1; 
     }   
} 
} 
-1

Вам нужно использовать функцию для работы каждой цифры вы введенная а затем итерации до тех пор, пока не будет рассчитан нуль. Что-то, как это будет работать, а затем просто вернуть оставшуюся часть заявления переключателя:

quotient = number/10; 
remainder = number % 10; 
switch(remainder) 
{ 
    case 1: 
     return 1 
     break; 
} 
-1

Вы можете создать метод, чтобы найти число символов в строке, как показано ниже:

public static int Match(String pattern, String word) { 
    int abc = 1; 
    Matcher m = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE).matcher(word); 
    while (m.find()) { 

     abc *= Integer.parseInt(m.group()); 
     System.out.println("val of abc when (m=" + m.group() + ") - " + abc); 

    } 
    System.out.println("*************************"); 
    return abc; 
} 

Тогда вы можете проверить данную строку в своем основном методе, пока не получите необходимый номер:

String word = "126 Florida Beach"; 
    String pattern = "\\d"; 

    int abc = 1; 
    do { 
     System.out.println("word at - " + word); 
     System.out.println("abc at - " + abc); 
     abc = Match(pattern, word); 
     word = String.valueOf(abc); 

    } while (abc > 9); 
    System.out.println("Required Value - " + abc); 
+0

@ вниз-избиратель может я знаю причину ??? –

0

Простые решения в C:

int muldigits(unsigned int n) { 
    while (n > 9) { 
     unsigned int m = n; 
     for (n = 1; m; n *= m % 10, m /= 10); 
    } 
    return n; 
} 
Смежные вопросы