[Codeforces] 1553A Digits Sum 풀이 코드 (C/C++/Java /Python)

by iamtrueline

문제 해설

Difficulty : *800 (Math / Number theory)

1 ≤ n ≤ 1,000,000,000, 1 ≤ x ≤ n일 때, S(x)는 x의 모든 자릿수를 하나씩 더한 값입니다. 예를 들어 S(5) = 5, S(10) = 1, S(322) = 3 + 2 + 2 = 7입니다. 이때 우리는 S(x+1) < S(x)를 만족하는 x를 ‘재밌는 수’라고 부를 거예요. n이 주어질 때, 조건 안에 재밌는 수 x는 몇 개나 있는지 출력합니다.

풀이

x는 십진수로 정해져 있으므로 S(x+1) < S(x)를 만족할 때는 자릿수가 오르는 시점 = 9가 10으로 바뀌어 자릿수 합이 작아지는 시점, 즉 일의 자릿수가 9일 때뿐입니다. 정답은 주어진 수에 1을 더해 10으로 나눈 값과 동일합니다.


코드

C

#include <stdio.h>
 
int main(){
    int t, n;
    scanf("%d", &t);
    while(t--){
        scanf("%d", &n);
        printf("%d\n", (n+1)/10);
    }
    return 0;
}

C++

#include <iostream>
using namespace std;
 
int main(){
    int t, n;
    cin>>t;
    while(t--){
        cin>>n;
        cout<<(n+1)/10<<endl;
    }
    return 0;
}

Java

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        for(int i = 0; i < t; i++){
            System.out.println((sc.nextInt()+1)/10);
        }
    }
}

Python

time = int(input())
 
for t in range(time):
    print(int((int(input())+1)/10))

문제 출처

https://codeforces.com/contest/1553/problem/A

You may also like

Leave a Comment

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00