📗
JunegLee's TIL
  • TIL
  • python
    • class
    • String Basic
    • regularExpression
    • String function
    • Generator
    • String format
    • getset
    • module
    • while
    • numpy
    • print()
    • matplotlib
    • for
    • Boolean
    • tuple
    • package
    • input(variable)
    • list
    • if
    • file
    • type()
    • pandas
    • function
    • dictionary
    • 구문 오류와 예외
    • builtinFunction
    • Constructor
  • algorithm
    • sort
      • mergeSort
      • insertionSort
      • bubbleSort
      • heapSort
      • quickSort
      • selectionSort
    • recursion
    • Greedy
    • DepthFirstSearch
    • basic
      • DataStructure
    • hash
    • BreadthFirstSearch
  • tensorflow
    • keras
      • layers
        • Flatten
        • Flatten
        • Dense
        • Dense
        • Conv2D
        • Conv2D
    • tensorflow1x
    • tensorflow2x
  • DB
    • setting
    • join
    • subQuery
    • overview
  • deep-learning
    • neuralNetwork
    • perceptron
    • neuralNetworkLearning
    • convolution neural network
    • Gradient Descent
    • Linear Regression
    • backPropagation
    • logistic regression
    • overview
  • textPreprocessing
    • overview
  • java
    • basics
      • generic
      • Variable
      • String
    • theory
      • Object Oriented Programing
  • NLP
    • Embedding
    • Natural Language Processing
Powered by GitBook
On this page
  • recursion
  • 재귀를 이용한 한자릿수 만들기

Was this helpful?

  1. algorithm

recursion

recursion

재귀를 이용한 한자릿수 만들기

// input 자연수 n이 주어졌을 때
// ex1) 10 일 경우 1 + 0 => 1
// ex2) 456789 일 경우 4 + 5 + 6 + 7 + 8 + 9 => 39
//                     39 = > 3 + 9 = > 12 
//                     12 = > 1 + 2 => 3
public class recursion {
    public static int compute(int source) {
        if (source < 10) {
            return source;
        }

        String sourceStr = Integer.toString(source);

        int sum = 0;
        for (int i = 0 ; i < sourceStr.length(); i ++) {
            char ch = sourceStr.charAt(i);
            int num = (int) ch - 48; // 아스키 코드
            sum +=num;
        }
        return compute(sum); // 재귀 호출 
    }

    public static void main(String[] args) {
        int num = compute(456789);
        System.out.println(num); // 3
    }
}
PreviousselectionSortNextGreedy

Last updated 4 years ago

Was this helpful?