본문 바로가기
Programming/Algorithm

swe Digit Sum

by OKOK 2018. 3. 29.

 strlen

char[30]

str



/*

19:47 분 시작합니다.


최종적으로 n 이 어떤 값이 되는지 구하는 프로그램을 작성하세요.

예제를 통해서 풀면 되겠습니다.


숫자를 받아서 몇의 자리 수인지 확인하도록 합니다.


*/


#include <iostream>

#include <cstring>

#include <algorithm>


using namespace std;

int ans;

char str[20];

int length;

int sum;

int num;

long long divNum;

int flag;


void problemIn() {

//cin >> str;

scanf("%s", str);

}


void numSum() {

if ((num / 10) == 0) {

flag = 1;

sum = num;

return;

}

for (int i = 0; i <= 18; i++) {

divNum = pow(10, i);

if ((num / divNum)== 0) {

length = i ;

break;

}

}


sum = 0;

for (int i = length-1; i >= 0; i--) {

divNum = pow(10, i);

sum += (num/divNum);

num = num % divNum;

}

}


void solve() {


length = strlen(str);

if (length == 1) {

num = str[0] - '0';

return;

}

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

num += str[i] - '0';

}


while (1) {

numSum();

if (flag) return;

num = sum;

}

}


int main() {

int T;

cin >> T;

for (int tc = 1; tc <= T; tc++) {

problemIn();

solve();

printf("#%d %d\n", tc, num);

sum = 0; num = 0; flag = 0;

}

return 0;