초보자 프로그래머 홍길동은 사용자가 입력한 양의정수(범위는 int)각 자리수를 더해 출력하는 프로그램을 만들고 싶어한다. ex) 5923의 결과는 5+9+2+3인 19이다 ex) 200의 결과는 2+0+0인 2이다 ex) 6719283의 결과는 6+7+1+9+2+8+3인 36이다.
243개의 풀이가 있습니다.
int main(void)
{
int i,p,result;
printf("Put an intager: ");
scanf("%d", &i);
while(i>0){
p=(i/10)*10;
result+=(i-p);
i=i/10;
}
printf("Result is %d\n", result);
return 0;
}
num = int(input("Input your number: "))
print("Sum : {}".format(sum([int(x) for x in str(num)])))
Input your number: 123456789
Sum : 45
num = input('input interger: ')
sum = 0
for i in range(0,(len(num))):
sum = sum + int(num[i])
print(sum)
// ===========================================================================
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String st = br.readLine();
int num = Integer.parseInt(st);
int temp = 0;
int result = 0;
while (num > 0) {
temp = num % 10;
num /= 10;
result += temp;
}
bw.write(String.valueOf(result));
bw.flush();
n=input()
s=0
for i in range(len(n)):
s=s+int(n[i])
print(n[i], end='')
if i<len(n)-1:
print('+', end='')
print('=', s, sep='')
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
String aa = String.valueOf(num);
int aaLength = aa.length();
int total =0;
for(int i=0; i<aaLength; i++){
total += Integer.parseInt(aa.substring(i, i+1));
}
System.out.print(total);
}
var input = '5692';
var output = 0;
for(var i=0;i<input.length;i++)
{
output = output+Number(input[i]);
}
alert(output);
public static void main(String[] args) {
int a = 0;
int b = 10;
int sum = 0;
int twise = 0;
int minus = 1;
Scanner sc = new Scanner(System.in);
a=sc.nextInt();
String aString = String.valueOf(a);
for(int i = 0;i<aString.length();i++){
twise = (int) Math.pow(b, aString.length()-minus);
int pri = (a/twise);
sum+=pri;
minus++;
a = a-twise*pri;
}
System.out.println(sum);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[] ar = input.next().toCharArray(); //입력값을 받아 배열로 한자리씩 끊어서 char 배열에 저장
int result = 0;
for (int i = 0; i < ar.length; i++) {
result += ar[i]-48; //유니코드로 1은 49
}
}
유니코드로 풀어보았습니다.
try:
x = input('press any integer: ')
y = list(x)
z = 0
i = 0
for i in y:
z = z + int(i)
print(z)
except:
print('정수만 입력할 수 있습니다.')
num1 만 변경하면 됩니다.
public class tut06 {
public static void main(String[] args) {
int num1 = 6719283;
System.out.println(("" + num1).chars().map(i -> Character.getNumericValue(i)).sum());
}
}
s = int(input("enter the number: "))
y = str(s)
sum1 = 0
for i in range(len(y)):
sum1 += s % 10
s = s // 10
print(sum1)
재귀는 없는것 같아서
int getgen(int n){
if(n<10) return n;
int a;
for(int i=0;pow(10,i)<=n;i++) a=i;
return n/(int)pow(10,a)+getgen(n %(int)pow(10,a));
}
재귀있는 문제
num=input("Enter any positive integer : ")
jari=len(num)
num=int(num)
lst=list()
iter_lst=list(range(jari))
iter_lst.reverse()
for i in iter_lst:
lst.append(num//(10**i))
num=num%(10**i)
print(sum(lst))
package studypac;
import java.util.Scanner;
import java.math.*;
public class timestudy {
public static void main(String args[])
{
Scanner scanf = new Scanner(System.in);
double comeon=0;
int total=0, cal_tool =0, div=0;
System.out.print("Put your value: ");
comeon=scanf.nextInt();
int comeon_log=(int)(Math.log10(comeon));
for(int i=comeon_log;i>=0;i--)
{
cal_tool = (int) Math.pow(10, i);
div = (int)comeon/cal_tool;
total+=div;
comeon = comeon-(div*cal_tool);
}
System.out.print("Total value: " + total);
}
}
Java로 만들었습니다...
Put your value: 321 Total value: 6
number = int(input('give me a number: '))
number = list(str(number))
total = 0
for i in number:
i = int(i)
total += i
print(total)
C# - LINQ
using System;
using System.Linq;
namespace CD210
{
class Program
{
static void Main()
{
string input = Console.ReadLine();
int result = (from chr in input.ToCharArray()
select (int)char.GetNumericValue(chr)).Sum();
Console.WriteLine(result);
}
}
}
C Language - Novice
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(void)
{
int input = 0;
int digits = 0;
int digit_cnt = 0;
int while_control = 1;
int sum = 0;
printf("숫자 입력 : ");
scanf("%d", &input);
digits = input;
while (getchar() != '\n');
while(while_control){// 자릿수계산
digits /= 10;
digit_cnt ++;
if(digits == 0)
{
while_control = 0;
digit_cnt -= 1;
}
}
int factor = 1;
int digit_tmp = 0;
int i, j;
for( i = digit_cnt; i > 0; digit_cnt--)
{//각 자리 값 덧셈
digits = input;
digits = digits - digit_tmp;
factor = 1;
for(j = 0; j <digit_cnt; j++)
{
factor = factor * 10;
}
digits /= factor;
digit_tmp += digits * factor;
sum += digits;
if(digit_cnt == 0)
break;
}
printf("sum = %d", sum);
return 0;
}
#include <iostream>
using namespace std;
bool sum_each_digits(long int& sum) {
bool is_valid = true;
sum = 0;
string input;
cout<<"input sequence of digits = ";
getline(cin, input);
for (auto i = 0; i < input.length(); i++) {
if (input[i] < '0' || input[i] > '9') {
is_valid = false;
break;
}
sum+= input[i] - '0';
}
if (false == is_valid) {
return false;
}
return true;
}
int main(int argc, char* argv[]) {
long int sum = 0;
if (true == sum_each_digits(sum)) {
cout<<"sum is = "<<sum<<endl;
} else {
cout<<"WRONG input!"<<endl;
}
return 0;
}
positiveint = 4567
bufstr = str(positiveint)
bufstr
'4567'
buflist=list(bufstr)
buflist
['4', '5', '6', '7']
_sum = 0
for i in buflist:
_sum += int(i)
_sum 22
Scanner sc = new Scanner(System.in);
System.out.print("수를 입력하시오 >>");
int inputNum = sc.nextInt();
int sum = 0;
while (inputNum != 0) {
sum += inputNum % 10;
inputNum /= 10;
}
System.out.println("숫자의 총합 : "+ sum);
javascript
let input = '5923';
let sum = 0;
for(let i of input) {
sum += Number(i);
}
console.log(sum);
python
input_num = input("숫자를 넣어주세요: ")
sum_num = 0
for i in input_num:
sum_num += int(i)
print(sum_num)
def digitSum(number):
a = number
b = 0
i = 1
while int(a%10) != 0 or int(a/10) != 0:
# print(str(i)+'회차')
c = a % 10
# print('c','=',a,'%','10')
b = b+c
# print('b','=',b)
a = int(a /10)
# print('a = ',a)
i = i+1
# print(b)
return b
n = int(input())
sum(map(int,str(n)))
public class Split_Sum {
public static boolean isNumber(String a) {
Boolean result = false;
try {
Integer.parseInt(a);
result = true;
} catch (Exception e) {
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("값을 입력해주세요 :: ");
String a = sc.next();
int sum = 0;
if(isNumber(a)) {
System.out.println("숫자입니다.");
for (int i = 0; i < a.length(); i++) {
char b = a.charAt(i);
sum += Character.getNumericValue(b);
}
System.out.println(sum);
} else {
System.out.println("문자입니다. 다시 입력해주세요");
}
}
}
from _functools import reduce
n = 6719283
s = str(n)
sum = reduce(lambda x,y: int(x)+int(y),s[0::])
print(sum)
public static void main(String[] args) {
System.out.print("숫자를 입력하세요. : ");
Scanner inputNum = new Scanner(System.in);
String[] inputSplit = inputNum.next().split("");
int sum =0;
boolean flag =true;
for(int i=0;i<inputSplit.length;i++) {
sum+=Integer.parseInt(inputSplit[i]);
}
System.out.println("각 자리수의 합은 "+sum+"입니다.");
}
import java.util.Scanner;
class Number {
int in, sum = 0;
public Number(int in){
this.in = in;
}
public int cal(){
String strin = String.valueOf(in);
for(int i = 0; i < strin.length(); i++) {
sum += Integer.parseInt(strin.substring(i, i+1));
System.out.println(strin.substring(i, i+1));
}
return sum;
}
}
public class one {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
Number num = new Number(sc.nextInt());
System.out.println(num.cal());
}
sc.close();
}
}
(풀이방법)
임의의 수 x를 문자열로 만들어 주는 함수(sum_digit)를 정의해준다음,
for 반복문으로 문자를 숫자로 변환시켜 주면서 하나씩 더하게 해줌
def sum_digit(x):
str_x = str(x)
sum = 0
for digit in str_x:
sum = sum + int(digit)
print(sum)
sum_digit(5923)
sum_digit(6719283)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodingDojang
{
class Program
{
static void Main(string[] args)
{
//각 숫자의 합
int eachSum = 0;
//숫자입력
Console.Write("User Input: ");
string userInput = Console.ReadLine();
userInput.ToCharArray();
foreach (int eachNumber in userInput)
{
eachSum += eachNumber - 48;
}
Console.WriteLine(eachSum);
Console.ReadLine();
}
}
}
#include <iostream>
using namespace std;
int main(void)
{
int num1, sum=0;
cin >> num1;
while(num1 == 0)
{
sum+=num1%10;
num1/=10;
}
cout << sum;
}
#include <stdio.h>
#include <math.h>
int main(void){
int num,sum;
printf("숫자를 입력 해주세요:");
scanf("%d",&num);
sum = 0;
while(num > 0){
sum += num % 10;
num /= 10;
}
printf("%d",sum);
return 0;
}
namespace codingdojang__
{
class Program
{
static void Main(string[] args)
{
int input = int.Parse(Console.ReadLine());
int total = 0;
for (int temp = input.ToString().Length; temp >= 0; temp--)
{
total += input % 10;
input /= 10;
}
Console.WriteLine(total);
}
}
}
```{.python}
```num=int(input("숫자 입력:")) sum=0 while True: sum += num % 10 num=num//10 if num==0: break print(sum)
#include <stdio.h>
void main()
{
int n, sum = 0;
printf("수를 입력하세요.\n");
scanf("%d", &n);
for (int i = 1; n > i;) {
sum += n % 10;
n = n / 10;
}
sum += n;
printf("각 자리수의 합 : %d\n", sum);
}
def sum_num(n):
if n<10:
return n
else:
s = str(n)
return int(s[0])+sum_num(int(s[1:]))
# 주어진 숫자를 문자열로 만들어, 각자리수의 합 = 첫번째 자리 수 + 나머지 각자리 수의 합임을 이용하여
# 재귀 함수를 사용하였음
print(sum_num(9))
print(sum_num(25))
print(sum_num(3010))
int s, sum=0, temp=0;
scanf_s("%d", &s);
while(1){ temp=s%10; temp=temp/10; sum+=temp; if(temp==0) break; }
printf("%d\n", sum);
def calcDigit(a):
numLength = len(str(a))
num = int(a)
sum = 0
if numLength > 0:
for i in range(1, numLength + 1):
a = num%10
num = num//10
sum = sum + a
return(sum)
number = input(" 숫자를 입력해주세요: ")
print(calcDigit(number))
tmp = 0
numbers = input('input your number>')
for i in range(len(numbers)):
tmp = tmp + int(numbers[i])
print(tmp)
입력된 문자열의 구성이 숫자로만 이루어졌는지 체크는 어떻게 해야할지 모르겠네요
let userNum = prompt("숫자를 입력해주세요.");
let sum = 0;
userNum.split("").forEach(num => {sum += Number(num)});
console.log(`입력한 숫자의 각 자리수 합은 ${sum}입니다.`);
a=str(input("정수를 입력해 주세요. "))
a.split()
result=0
for i in range(len(a)):
result+=int(a[i])
print(result)
public class practice01 {
public static void main(String[] args) {
System.out.print("숫자를 입력하세요 : ");
Scanner sc = new Scanner(System.in);
String num;
num = sc.nextLine();
int sum = 0;
for(int i = 0; i<num.length(); i++) {
sum += Integer.parseInt(num.substring(i,i+1));
}
System.out.println(sum);
}
}
먼저 사용자에게 숫자를 입력받는 상황을 구현하기 위해 num변수를 정의합니다.
let num = 123456789;
그 후 if 문을 이용하여 사용자가 입력한 데이터가 정수 형인지를 확인하기 위해 Number.isInteger를 이용합니다.
let num = 123456789;
if (Number.isInteger(num)) {
//code here.
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
정수 형이 확인되면 숫자를 분할하기 위해 문자 데이터로 변환하고, 이를 numtoStr변수에 저장합니다.
let num = 123456789;
if (Number.isInteger(num)) {
let numtoStr = num.toString();
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
변환된 문자 데이터를 글자 단위로 분할하여 splitedStr변수에 저장합니다.
let num = 123456789;
if (Number.isInteger(num)) {
let numtoStr = num.toString();
let splitedStr = numtoStr.split("");
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
for 문을 이용하기 위해 최종 합을 저장할 변수 sum을 0으로 설정합니다.
let num = 123456789;
if (Number.isInteger(num)) {
let numtoStr = num.toString();
let splitedStr = numtoStr.split("");
let sum = 0;
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
for 문을 작성합니다.
let num = 123456789;
if (Number.isInteger(num)) {
let numtoStr = num.toString();
let splitedStr = numtoStr.split("");
let sum = 0;
for (let i = 0; i < splitedStr.length; i++) {
//code here.
}
console.log(sum);
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
splitedStr은 배열이므로 Number(splitedStr[i]);를 이용하여 splitedStr의 원소를 Number의 형태로 변환합니다. 그 후 sum 에 누적하여 합을 구합니다.
let num = 123456789;
if (Number.isInteger(num)) {
let numtoStr = num.toString();
let splitedStr = numtoStr.split("");
let sum = 0;
for (let i = 0; i < splitedStr.length; i++) {
sum = sum + Number(splitedStr[i]);
}
console.log(sum);
} else {
console.log("이 값은 정수 데이터가 아닙니다.");
}
def digit(n):
return sum(list(map(lambda x : int(x),str(n))))
def digit(n):
return sum(map(int,str(n)))
num=input("숫자를 입력하세요:")
sum = 0
for i in list(num):
sum = sum + int(i)
print("주어진 숫자의 각 자리수의 합은 %s 이다" % sum)
inputNum = input("Please input any number: ")
inputSum = sum(int(n) for n in inputNum)
print(inputSum)
using System;
using System.Linq;
namespace codingdojang
{
class Program
{
public static void Main() => Sum(Console.ReadLine());
public static void Sum(string arg)
{
Console.WriteLine(arg.ToCharArray().AsEnumerable().Sum(x => char.GetNumericValue(x)));
}
}
}
iNum = input()
leng = len(iNum)
summ = 0
# Got the Sum of cipher value
for i in range(leng):
summ = summ + int(iNum[i])
print(summ)
public static int word(char word) { int result = 0; try { result = Character.getNumericValue(word); } catch (NumberFormatException e) { result = 0; }
return result;
}
public static int words(String words) {
int result = 0;
int index = 0 ;
index = words.length();
for(int i = 0 ; i<index ; i++) {
result = result + word(words.charAt(i));
}
return result ;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// words("123");
System.out.println(words("1234"));
}
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main(void)
{
vector<int>iv;
string part[100];
int startpos = 0;
int num = 0;
string s;
getline(cin, s);
int i = 0;
for(int i=0;i<s.length();i++)
{
part[i]=s.substr(startpos, 1);
int num = stoi(part[i]);
iv.push_back(num);
startpos += 1;
}
sort(iv.begin(), iv.end());
vector<int>::iterator itr;
for (itr = iv.begin(); itr != iv.end(); itr++)
{
cout << *itr;//sorting까지 해봤습니다
num += *itr;
}
cout << endl << num << endl;
}
num = input()
sum = 0
for i in str(num):
sum = sum+int(i)
print(sum)
Jupyter에서 작성하는데 처음 실해은 되나 두번째 실행에서 Runtime 오류가 발생합니다. (~~아직 원인을 모릅니다.~~) input창이 열리고 다시 실행을 눌러서 생기는 오류였습니다. 그냥 엔터를 누르면 해결됩니다.
num = int(input())
x = list(str(num))
total = 0
for i in x:
if i.isdigit():
total += int(i)
print(total)
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
String input = new Scanner(System.in).nextLine();
String[] data = input.split("");
int sum = 0;
for (int index = 0; index < data.length; index++) {
sum += Integer.parseInt(data[index]);
}
System.out.println(sum);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a=0;
String b = sc.nextLine();
for(int i =0; i<b.length(); i++) {
a += b.charAt(i)-'0';
}
System.out.println(a);
}
자바로는 짧게못짜겠네요..
a = input("Type any num : ")
a_str = str(a)
result = 0
for i in range(len(a_str)):
result += int(a_str[i])
print(result)
public static void main(String[] args) { String data = "6719283"; System.out.println(getDigitSum(data)); }
private static int getDigitSum(String data) {
return data.chars().map(Character::getNumericValue).sum();
}
# 초보자 프로그래머 홍길동은 사용자가 입력한 양의정수
# (범위는 int)각 자리수를 더d3인 19이다 ex) 200의 결과는 2+0+0인 2이다
# ex) 6719283의 결과는 6+7+1+9+2+8+3인 36이다.
numStr = input()
sumOfEachNum = 0
for i in numStr:
sumOfEachNum += int(i)
print(sumOfEachNum)
def sum_of_digits(digits):
if digits == 0:
return 0
return (digits % 10) + sum_of_digits((digits - (digits % 10)) / 10)
/*C로 작성*/
#include<stdio.h>
void main()
{
int Num, Sum=0;
printf("각 자릿수의 합을 구할 수를 입력하시오.\n");
for (;;)
{
scanf("%d", &Num);
if (Num <= 0) printf("양의 정수를 입력해주세요.\n");
else break;
}
for (;;)
{
Sum = Sum + (Num % 10);
Num = Num / 10;
if (Num == 0) break;
}
printf("\n%d", Sum);
}
num=int(input("숫자를 입력하십시오:"))
sum=0
while num> 0:
dig=num%10
sum=sum + dig
num=num//10
print('자릿수의 합은 %d입니다.'%sum)
#include <stdio.h>
#include <math.h>
int main(void)
{
int i=1, total=0;
int num;
int divide;
scanf("%d", &num);
while (1)
{
divide = pow(10, i);
if (num < divide) break;
i++;
}
while (num != 0)
{
divide /= 10;
total += (num / divide);
num %= divide;
}
printf("%d", total);
return 0;
}
초기식이 없다면? 만들면 되지!
while(num != 0) 시작하자마자 divide가 1/10이 되는 이유는 예를들면 1938을 입력했을 때 while(1)에서 divide가 '10000'이 되기 때문입니다
def decoreder(data) dataStr = str(data) totalNum = [] for tmpDataStr in dataStr: totalNum.append(int(tmpDataStr))
return sum(totalNum)
num = int(input("숫자를 입력하세요: "))
def answer(num):
return sum([int(x) for x in str(num)])
print(answer(num))
num = input("양의 정수를 입력하세요: ")
num_list = list(i for i in num)
num_str = "+".join(num_list)
total = 0
for i in range(len(num)):
total += int(num[i])
print("%s의 결과는 %s인 %d이다" % (num, num_str, total))
파이썬입니다~
Scanner scanner = new Scanner(System.in);
String num = scanner.nextLine();
String[] spt = num.split("");
int sum = 0;
for(int i =0; i<spt.length; i++) {
sum += Integer.parseInt(spt[i]);
}//for
let score = String(prompt('SCORE'))
let sum = 0
for(let i = 0; i < score.length; ++i) {
sum += Number(score.charAt(i))
}
static void Main(string[] args) {
int sum = 0;
char tmp;
Console.Write("각 자릿수를 더할 양의 정수를 입력하세요 : ");
string uip = Console.ReadLine();
Console.WriteLine("입력한 값은 {0} 입니다.", uip);
for (int i = 0; i < uip.Length ; i++)
{
sum = sum + int.Parse(char.ToString(uip[i]));
}
Console.WriteLine("각 자릿수의 합은 : {0} 입니다.", sum);
}
num = input("숫자를 입력해주세요 :")
i = len(num)
a = 0
total = 0
while a < i:
total = total + int(num[a])
a = a + 1
print("\n\n각자리 숫자의 총합은",total," 입니다.")
package javatest;
import java.util.Scanner;
import java.util.ArrayList;
public class numnum {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int num=0;
int result=0;
ArrayList<Integer> su= new ArrayList<Integer>();
System.out.print("수를 입력하세요 : ");
num = sc.nextInt();
String aa = Integer.toString(num);
for(int i=0; i<aa.length();i++) {
su.add( Integer.parseInt(String.valueOf(aa.charAt(i)))); // 자리별 수 리스트에 입력
result +=Integer.parseInt(String.valueOf(aa.charAt(i))); // 자리별 수 더하기
}
System.out.print("입력한 수의 각 자리 수의 합은 : ");
for(int i=0;i<su.size();i++) { // 자리별 수 출력
System.out.print(su.get(i));
if(i != su.size()-1) {
System.out.print("+");
}
}
System.out.println("="+result);
}
}
a=input('enter number : ') b=' '.join(a) c=b.split()
sum=0 for i in range(len(c)): sum=sum+int(c[i])
print(sum)
void main() { int Number = 0; int Sum = 0; scanf("%d", &Number); while(Number){ Sum += Number%10; Number /= 10; } printf("%d", Sum); }
비쥬얼 스튜디오에서 작성했습니다. char 배열로 해서, 아스키코드값을 이용해서 코딩하였습니다.
#include <stdio.h>
#include <iostream>
using namespace std;
void main() {
char x[20];
printf("정수를 입력하세요 : ");
scanf("%s", x);
int sum = 0;
for (int i = 0; i < strlen(x); i++)
{
sum += (x[i] - 48);
}
printf("각 자리 숫자의 합은 : %d", sum);
}
!/bin/python
# 1. 사용자의 입력을 받음
number = input("Input a integer: ")
number_size = len(number)
result = 0
# 2. 각 자릿수를 추출하여 더함
for i in range(1, number_size + 1):
token = (int(number) % (10 ** i)) // 10 ** (i-1)
result += token
# 3. 결과 출력
print(result)
positiveinteger = input("Write down your favorite number in positive integer: ")
def sum_of_eachnum(positiveinteger):
summ = 0
for i in range(0,len(positiveinteger)):
summ += int(positiveinteger[i])
return summ
print(sum_of_eachnum(positiveinteger))
package com.java.tutorial;
import java.util.Scanner;
public class Java_CodingDojang {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
System.out.println("숫자입력:");
int num = scn.nextInt();
int sum =0;
while(num!=0) {
sum += num%10;
num /= 10;
}
System.out.println("결과 : "+sum);
}
}
julia
f(n::Int) = div(n,10) == 0 ? n%10 : f(div(n,10)) + n%10
julia> f(200)
2
julia> f(5923)
19
julia> f(6719283)
36
노잼 정직
#include <iostream>
using namespace std;
int main()
{
int N;
int sum = 0;
cin >> N;
for(int exp = 1; N / exp > 0 ; exp *= 10)
sum += N / exp % 10;
cout << sum;
return 0;
}
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int a;
a = int.Parse(Console.ReadLine());
int sum = 0;
int divide = 1;
while (true)
{
if (a < divide)
break;
sum += a % (divide * 10) / divide;
//Console.WriteLine(a % (divide * 10) / divide);
divide *= 10;
}
Console.WriteLine(sum);
}
}
}
from functools import reduce
def sp(num):
s = reduce(lambda x, y: int(x) + int(y), num)
return (s)
print(sp(input('입력:')))
n = input() total = 0
if int(n) < 0: print("양의 정수를 입력해 주세요")
if int(n) >=0 : for i in range(len(n)): total += int(n[i])
print(total)
def solution(num):
num = list(str(num))
result = 0
for i in range(len(num)):
result += int(num[i])
return result
print(solution(5923))
print(solution(200))
print(solution(6719283))
num=input('수를 입력 : ');
m=max(find(num2str(num)););
result=0;
for k=m:-1:1
g=fix(num/10^(k-1));
num=num-g*(10^(k-1));
result=result+g;
end
fprintf('각 자리수의 합은 %g\n',result);
PHP
$fn = function(int $i) : int { return array_sum(str_split(strval(abs($i)))); };
print_r($fn(5923)); // 19
print_r($fn(200)); // 2
print_r($fn(6719283)); // 36
num = str(input("숫자를 입력하시오 : "))
result = 0
for i in range(len(num)):
result += int(num[i])
print(result)
data = input("숫자를 입력하세요 : ")
List_data = list(data)
result = sum([int(i) for i in List_data])
print(result)
package d210_cipher_sum;
import java.util.Scanner;
public class SumOfCiphers {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int output=0, input = sc.nextInt();
for( ; input>0; input/=10) output+=(input%10);
System.out.println(output);
}
}
6719283
36
def num(a,b):
return(str(a)+str(b))
print(num(a,b))
정수인 a,b가 문자열로 바뀌면서 더해질 때 ab형태로 나타날 수 있습니다 허나, 두가지의 수만 입력이 가능하여서 200 같은 수를 나타내려면 그냥 20 + 0 처럼 두가지로 표현해야한다는 단점이 있습니다.
import java.util.*;
public class 각자릿수의합 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String num = scan.nextLine();
String[] nums = num.split("");
int[] arr = Arrays.stream(nums).mapToInt(Integer::parseInt).toArray();
int sum=0;
int i=0;
while(true) {
if(i<arr.length) {
sum=sum+arr[i];
i++;
}
else {
break;
}
}
System.out.println(sum);
}
}
파이썬
sum(list(map(lambda x:int(x),input("숫자를 입력하세요 : "))))
문자열은 iterable하므로 하나씩 꺼내서 int(x)형식으로 바꾼 후 리스트로 만들고 그 리스트의 요소들을 전부 더하는 sum() 함수 적용.
내장함수 최대한 안 쓰고 subroutine으로 만들면 이렇습니다. (최적화하는 방법도 있을거 같네요)
subroutine digit(numb)
integer numb, i, dum, dum2, cnt, cnt2, n
c numb는 주어지는 숫자, 이를 dum에 저장 (given number)
dum=numb
cnt=0
c dum을 10으로 나눌 때마다 cnt에 1을 더하는 do-loop
do i=1, 40
If (dum .GE. 10) then
dum=dum/10
cnt=i
else
c dum이 10보다 작으면 do-loop를 빠져나옴.
goto 100
end if
end do
100 continue
cnt2=0
c 자릿수인 cnt부터 1까지 주어진 숫자를 10^i로 나눈다. 단 자연수일 때에만 하도록 if문 사용
do i=cnt,0,-1
if (numb .GT. 0) then
dum2=numb/(10**i)
c 각 자릿수에 들어가는 수가 0부터 9까지 가능하므로 do-loop를 사용하고
c if문을 통해 각 자릿수가 해당하는 수일 떄 cnt2를 n씩 더한다
do n=0,9
if (dum2 .EQ. n) then
cnt2=cnt2+n
c 주어진 숫자에서 이미 센 수를 제외해야하므로 아래와 같이 계산
numb=numb-(dum2*(10**i))
else
end if
end do
else
end if
end do
print *, cnt2
return
end
파이썬 3.6 입니다
def add_up_each_digit(n):
return sum([int(ch) for ch in str(n)])
print(add_up_each_digit(5923))
int Sum_of_Each_cipher(int n)
{
int result;
while(n>10)
{
result +=n%10;
n = n/10;
}
return result;
}
num = int(input("num = "))
result = 0
while num > 0 :
result += num%10
num = int(num/10)
print("result = ", result)
기초 프로그래밍 공부하던 책으로 짜보았습니다!!
#include <stdio.h>
int main(void)
{
int num, result=0;
printf("정수 입력: ");
scanf("%d", &num);
while (num > 0)
{
result += num % 10;
num /= 10;
}
printf("결과는 %d \n", result);
return 0;
}
list = []
def question():
number = input('Number: ')
question
if type(number) != 'int':
question()
else:
for i in range(0, len(number)):
list.append(int(number[i]))
sum(list)
python 3.8.2로 작성한 코드입니다.
result = 0
number = input('숫자입력 : ')
for i in number:
result += int(i)
print(result)
num=input("양의 정수를 입력하세요(범위 int) : ")
sum=0
for i in range(len(num)):
sum+=int(num[i])
print("{}의 자릿수 합 : {}".format(num,sum))
파이썬입니다.
x = input("각 자리수의 합을 구할 수를 입력해 주세요. : ")
ans = 0
for x in list(map(int, list(str(x)))):
ans += x
print(ans)
package study_0530_Codingdojang;
import java.util.Scanner;
public class Q208{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Input? : ");
String input[] = scan.next().split("");
int sum = 0;
for(int i=0; i<input.length; i++) {
sum += Integer.parseInt(input[i]);
}
System.out.print("Output? : " + sum);
}
}
package main
import (
"fmt"
"strconv"
"strings"
)
func sum(check int) int {
s := strconv.Itoa(check)
M := strings.Split(s, "")
var final int
for i := 0; i < len(s); i++ {
test, _ := strconv.Atoi(M[i])
final = final + test
}
return final
}
func main() {
var N int
fmt.Scanf("%d", &N)
fmt.Printf("%d", sum(N))
}
c 언어
#include <stdio.h>
int main(void) {
int N;
int finish = 0;
scanf("%d", &N);
while (N > 0) {
int M = N / 10;
finish += N - (M * 10);
N /= 10;
}
printf("%d\n", finish);
return 0;
}
c++
#include <iostream>
using namespace std;
int main(void) {
int N;
int finish = 0;
cin >> N;
while (N > 0) {
int M = N / 10;
finish += N - (M * 10);
N /= 10;
}
cout << finish << endl;
return 0;
}
1
import java.util.Scanner;
public class 각자릿수의합_1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int finish = 0;
String N = input.nextLine();
String[] N1 = N.split("");
for (int i = 0; i < N.length();i++) {
finish += Integer.parseInt(N1[i]);
}
System.out.println(finish);
}
}
2
package main_project;
import java.util.Scanner;
public class 각자릿수의합_2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int N = input.nextInt();
int finish = 0;
while (N >0) {
int M = N/10;
finish += N - (M*10);
N /= 10;
}
System.out.println(finish);
}
}
package test;
import java.util.*;
public class Test{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
int sum = 0;
for(int i = 0; i<input.length(); i++) {
sum += Character.getNumericValue(input.charAt(i));
}
System.out.println(sum);
sc.close();
}
}
파이썬을 이용하여 작성하였습니다. 사용자에게 값을 입력받는 방식인데, try와 except 구문을 이용하여 정수가 아니면 except구문으로 이동하도록 하였고 if구문을 통해 양의 정수 값만 통과하도록 만들었습니다. 그 후 양의 정수값을 문자열로 만들고, for 구문을 이용하여 문자열의 각 자리를 뽑아내고 이를 다시 정수로 바꾸고 합치는 방법을 사용했습니다.
try:
num = int(input("양의 정수를 입력하시오:"))
if num <= 0:
print("이 값은 양의 정수가 아닙니다.")
else:
print(sum(int(a) for a in str(num)))
except:
print("이 값은 양의 정수가 아닙니다.")
namespace _60일차_9월30일
{
class MainApp
{
static void Main(string[] args)
{
Console.Write("Input Number : "); //문자열 입력받기
string Input_Data = Console.ReadLine(); //입력된 문자열 변수 선언
char[] Array_Char = Input_Data.ToCharArray(); //입력된 문자열을 cher배열 변환
int Total = 0; //입력받은 값들의 합을 저장할 변수 선언
//배열을 순서대로 받아온후 (char -> string -> int형)변환 그후 값을 더해 Total변수에 저장
for (int i = 0; i < Array_Char.Length; i++)
{
Total += int.Parse(Array_Char[i].ToString());
}
string Print_Sum = string.Join("+", Array_Char.ToArray()); //char배열 사이에 "+"문자 삽입
Console.WriteLine($"{Input_Data}의 결과는 {Print_Sum}인 {Total}이다."); //결과문 출력
}
}
}
class SumMaker:
def __init__(self):
self.result = 0
def doSum(self,num):
line = str(num)
self.__init__()
for i in line:
self.result += int(i)
print (self.result)
a = SumMaker()
a.doSum(5923)
a.doSum(200)
a.doSum(6719283)
def sum_of_number(number):
for_answer=0
while number>0:
for_answer+=number%10
number=number//10
print("total sum of each number is {0}".format(for_answer))
sum_of_number(200)
sum_of_number(5923)
/* 초보자 프로그래머 홍길동은 사용자가 입력한 양의정수(범위는 int)각 자리수를 더해 출력하는 프로그램을 만들고 싶어한다.
ex) 5923의 결과는 5+9+2+3인 19이다 ex) 200의 결과는 2+0+0인 2이다 ex) 6719283의 결과는 6+7+1+9+2+8+3인 36이다. */
const numberSum = (num) => {
const strNum = String(num)
let count = 0
for (let i = 0; i < strNum.length; i++) {
count += Number(strNum[i])
}
return count
}
console.log(numberSum(123))
import os
os.system('cls')
def input_check():
while True:
try:
line = int(input('Input Numbers : '))
return line
except:
continue
n = input_check()
print(eval('+'.join(str(n))))
A=input("양의 정수를 입력하세요 : ")
tot=0
for i in range(len(A)):
tot+=int(A[i])
if i == len(A)-1:
print(tot)
n, sum = input("자연수 n을 입력하세요."), 0
for i in range(0,len(n)):
sum += int(n[i])
print(sum)
eval, join 함수만 알아도 한 줄로 끝나는 문제네요
python 3.9.1입니다.
def digit_sum(n):
str_n = str(n)
return sum([int(m) for m in str_n])
실행 결과는 다음과 같습니다.
>>> digit_sum(56)
11
>>> digit_sum(745)
16
def plus_factor(n):
result = 0
for i in str(n):
result += int(i)
return result
print(plus_factor(5923))
print(plus_factor(200))
print(plus_factor(6719283))
# 각 자릿수의 합 만들기.
def sum_digits():
number = int(input("자릿수 합을 구할 숫자를 입력하시오"))
int_list = []
#what is 최고 자릿수?
i = 0
while not(10**i > number):
i+=1
#i는 자릿수.
while not(i == 0) :
a = number//10**(i-1)
int_list.append(a)
number = number-a*(10**(i-1))
i-=1
#마지막 반복문으로 더하기
sum_result = 0
for i in int_list:
sum_result += i
return sum_result
print(sum_digits())
# 다음에 다시 풀때는 가장 밑자리 부터 자릿수 판별 및 리스트에 추가 과정 한 반복문 내에서 해보기
number = int(input("자릿수의 합을 구할 숫자를 입력해 주세요."))
S=0
while True:
a = number%10
S += a
number //= 10
if number//10 == 0:
S=S+a
break
print(S)
파이썬 3.8.10으로 작성되었습니다
import functools
data = str(list(map(int, input().split()))[0])
print(functools.reduce(lambda x, y: int(x) + int(y), data))
package exam;
import java.util.Scanner;
public class Ex21 {
public static void main(String[] args) {
// 총 합
int sum = 0;
// 나머지값을 저장할 변수
int tmp = 0;
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
while(num > 0) {
tmp = num % 10;
num /= 10;
sum += tmp;
}
System.out.print("sum : " + sum);
sc.close();
}
}
java
static void add(int x) {
int sum = 0;
while(x>0) {
sum += x%10;
x /= 10;
}
System.out.println(sum);
}
public static void main(String[] args) {
add(5923);
add(200);
add(6719283);
}
a = input("양의 정수를 입력해주세요")
def solution (a) :
arr = list(map(int,"".join(a)))
return print(sum(arr))
solution(a)
n = int(input('양의 정수를 입력하세요 : '))
sum = 0
for x in str(n):
sum += int(x)
print('answer : ' + str(sum))
// Rust
fn main() {
// let input = "5923";
let mut input = String::new();
std::io::stdin().read_line(&mut input).expect("input error"); // /n포함
let input = input.trim();
println!("{}", input.chars()
.map(|c| c.to_digit(10).unwrap())
.sum::<u32>()
);
}
def sumOfEachDigit():
num = input("양의 정수를 입력하세요: ")
print(f"{num}의 결과는", end=' ')
digits = [int(digit) for digit in num]
for idx in range(len(digits)-1):
print(digits[idx], end='+')
print(f"{digits[-1]}인 {sum(digits)}이다.")
sumOfEachDigit()
total = 0
def list_sum(value):
global total
input_list = list(map(int,str(value)))
for n in input_list:
total += n
return(total)
print(list_sum(input("양의정수를 입력하세요 :")))
package com.algorithm.algorithmpractice.dojang;
public class EachDigit {
private static int sumEach(int inputNum){
int result = 0;
while (inputNum != 0){
result += inputNum % 10;
inputNum /= 10;
}
return result;
}
public static void main(String[] args) {
int input1 = 5923;
int input2 = 6719283;
System.out.println(sumEach(input1));
System.out.println(sumEach(input2));
}
}
sum = 0
cmd = int(input("양의 정수를 입력하시오 :"))
cmd_num = list(map(int,str(cmd)))
for num in range(len(cmd_num)):
sum = sum + cmd_num[num]
print(sum)
def Sum_Each_of_Digit(num):
result = sum(int(i) for i in num)
return result
#
num = input('각 자릿수의 합을 구하는 합수입니다. 숫자를 입력해주세요 : ')
print(Sum_Each_of_Digit(num))
Python. int와 str, tuple을 정확히 구분하는 게 아직도 어렵네요.
number=input("임의의 수를 입력하세요. : ")
cipher_numbers=list(number)
result=0
for i in cipher_numbers:
result+=int(i)
print(result)
python
num = input("양의 정수를 입력하시오: ")
lst = []
for i in range(len(num)):
lst.append(int(num[i]))
print(sum(lst))