이 페이지는 코딩도장 데이터의 읽기 전용 정적 보관본입니다.

10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기

예로, 10~15까지의 각 숫자 분해하여 곱하기의 전체 합은 다음과 같다.

10 = 1 * 0 = 0
11 = 1 * 1 = 1
12 = 1 * 2 = 2
13 = 1 * 3 = 3
14 = 1 * 4 = 4
15 = 1 * 5 = 5

그러므로, 이 경우의 답은 0+1+2+3+4+5 = 15

구현

2016/04/08 17:23

hana11

+2 1에서 9까지는 어떻게 표현하나요? 1 = 1 * ? = ? 2 = 2 * ? = ? - 디디, 2016/04/09 09:23
+1 10부터 시작하는 것으로 바꾸었습니다. - hana11, 2016/04/09 10:11

501개의 풀이가 있습니다.

#pythion 3.5
print(eval('+'.join('*'.join(str(x)) for x in range(10, 1001))))

2017/02/02 08:31

seeker

eval 은 문자열로 표시된 산수의 연산값을 리턴하는 함수입니다. 예시 eval('2+2') 2 #int입니다. - 추천은 다 읽음, 2018/02/08 21:37
와대단히네요 - Gerrad kim, 2018/05/26 18:43
+1 정말 좋은 코딩입니다. range()함수값이 클 경우 "if(str(x).find("0")< 0)"를 넣으면 계산 시간이 줄어들 것 같습니다. - mr. gimp, 2020/01/20 18:05
generator가 뭔가요ㅜㅜ - Jack Maker, 2022/05/06 17:45

파이썬 3.5.1

print(sum(eval('*'.join(str(x))) for x in range(10,1001)))

C++

#include <iostream>
using namespace std;

int main(){
  int result;
  for(int x=0;x<=990;x++){
    string st = to_string(x+10);
    int temp = 1;
    for(int y=0; y<st.length(); y++){
        temp *= st.at(y) - '0';
    }
    result += temp;
  }
  cout << result;
    return 0;
}

자바

public class MyClass {
    public static void main(String[] args){
        String[] list = new String[991];
        int result = 0;
        for(int x = 10; x < 1001; x++){
            list[x-10] = ""+x;
        }
        for(String i:list){
            char[] temp = i.toCharArray();
            int mul = 1;
            for(char j:temp){
                mul *= Character.getNumericValue(j);
            }
            result += mul;
        }
        System.out.println(result);
    }
}

저 루비로 짠 코드를 보고 어떻게 하면 더 짧아질려나 한참을 고민했습니다. 합성함수를 연속으로 하지도 못하고...

2016/04/12 00:53

Flair Sizz

#파이썬3.5.1
#안전하게
num = []
for i in range(10,1000+1):
    s = list(str(i))
    s = '*'.join(s)
    num.append(eval(s))
print(sum(num))
# answer : 93150

2016/05/13 23:40

차우정

이해하기 쉽고 간결해서 보기 좋습니다. 고맙습니다. - kim ih, 2020/09/03 07:07
print(sum([eval('*'.join(str(i))) for i in range(10, 1001)]))

2017/11/15 08:50

songci

print(sum(eval('*'.join(str(i))) for i in range(10, 1001) if str(i).find("0") < 0)) - mr. gimp, 2020/01/20 01:41

자바 로 풀이

답 : 93150
풀이 : i 값 Stirng 변환 -> String 값 char배열로 변환 -> 루프 실행 -> char 값 넘버 변환 -> cnt 에 곱셈 -> total 에 덧셈

    public static void main(String[] args){

        int total = 0;

        for(int i=10; i<=1000; i++){

            Integer num     = i; 
            int cnt         = 1;
            String value    = num.toString();
            char[] chArray  = value.toCharArray();

            for( char ch : chArray){
                cnt *= Character.getNumericValue(ch);
            }

            total += cnt; 
        }

        System.out.println(total);

    }

2016/06/28 10:23

황 정석

Python

sum=0
for n in range(10,1001):
    part=1
    for i in str(n):
        part*=int(i)
    sum+=part
print(sum)

2016/07/07 02:42

왈왈

질문이 있습니다. for i in str(n)에서 i 값은 10, 11, 12, 13, 의문자 값을 받고 part *= int(i)에서 문자 i가 그냥 정수값으로 변환하게 되는데 어떻게 각 숫자를 쪼갠 값이 나오는지 궁금합니다 .ㅠ - gree Yu, 2020/09/03 18:32
eval 함수 없이 어떻게 풀어야하는지 고민중이었는데 감사합니다! - ss2663, 2021/05/09 16:40
C로 풀었습니다.

#include<stdio.h>

int main(void){
    int start, end, nam, mok;
    int i, k;
    int array[1000];
    int value;
    int sum = 0;

    printf("두 숫자를 입력하시오.\n");
    scanf("%d", &start);
    scanf("%d", &end);

    for(i=start; i<end+1; i++){
        mok=i;
        value = 1;
        while(mok>0){
            nam=mok%10;
            mok = mok/10;   
            printf("%d  ", nam);
            value=value*nam;
        }
        printf("value: %d \n", value);
        array[i]=value;
        sum= sum+ value;
    }
    printf("\n");
    for(i=start; i<end; i++){
        printf("%d + ", array[i]);
    }
    printf("%d = %d \n", array[end], sum);
    printf("\n");
}

2016/04/10 20:44

박주미

Ruby

msum = ->l,h { (l..h).sum {|n| n.digits.reduce:* } }

or

p (10..1000).sum {|n| n.digits.reduce:* }

Test

expect(msum[1,10]).to eq 45
expect(msum[10,15]).to eq 15
expect(msum[10,1000]).to eq 93150

2016/04/09 20:56

rk

정답은 93150 div_multiply: 분해해서 곱하고, sumOfMultiple로 10~1000까지 돌렸습니다.


    public int sumOfMultiple(int num1, int num2){
        int result = 0 ;
        for(int i = num1 ; i <= num2 ;i++){
            result += div_multiply(i);


        }
        System.out.println(result);
        return result;
    }
    public int div_multiply(int num){
        int result = 1;
        result *= num % 10 ;
        while(num > 10 ){
            num = num / 10 ;
            result *= num % 10 ;
        }
        return result;
    }

2016/04/11 21:27

xeo

Java로 작성 (Lambda)

int result = IntStream.rangeClosed(10, 1000).map(x->String.valueOf(x).chars().map(y->y-'0').reduce(1, (acc, element)->acc*element)).sum();

System.out.println(result);

2016/04/25 13:47

하늘아빠

덕분에 많이 배워 갑니다. 감사합니다. - compert, 2016/10/24 11:06
와 베스트네요 - JIHooN KIM, 2017/06/29 09:13

PHP로 해봤습니다.

$sum = 0;
for($i=10; $i<=1000; $i++) {
    $str = implode("*", str_split((string)$i));
    $sum += eval("return (".$str.");");
}
echo $sum;

2016/06/03 02:08

허큐리

# 한글 처리 in Atom 1.21.1 + Anaconda(Python 3.6.3)
import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')

# # 예로, 10~15까지의 각 숫자 분해하여 곱하기의 전체 합은 다음과 같다.
# 10 = 1 * 0 = 0
# 11 = 1 * 1 = 1
# 12 = 1 * 2 = 2
# 13 = 1 * 3 = 3
# 14 = 1 * 4 = 4
# 15 = 1 * 5 = 5
# 그러므로, 이 경우의 답은 0+1+2+3+4+5 = 15

print(eval('+'.join(['*'.join(str(i)) for i in range(10, 1001)])))

2017/11/01 19:17

Jace Alan

3일전부터 코딩도장에서 헤매고 있는데, jace alan님 코드에 또 감탄하네요... 다른사람 코딩이 눈에 안들어와요..혹시 도움이 되는 지침서나 서적 같은거 추천해주실수 있나요??? [email protected] 꼭좀 부탁드립니다 :-) - june davis, 2017/12/21 00:24

파이썬 3.6

def multotal(a,b):
    mul= 1
    total = 0
    for i in range(a,b+1):
        for g in str(i):
            mul *= int(str(i)[str(i).index(g)])
        total += mul
        mul = 1
    print(" ☞ Total of Multiple = ",total)

start = int(input(" ▶ 범위의 시작 숫자를 입력하세요: "))
end = int(input(" ▶ 범위의 끝 숫자를 입력하세요: "))
print ("\n"," >>> 각 숫자 곱셈의 합산 범위는 : %d ~ %d" %(start,end),"\n") 
multotal(start, end)
  • 결과값
 ▶ 범위의 시작 숫자를 입력하세요: 10
 ▶ 범위의 끝 숫자를 입력하세요: 1000

  >>> 각 숫자 곱셈의 합산 범위는 : 10 ~ 1000 

 ☞ Total of Multiple =  93150

2017/12/27 15:37

justbegin

sum = 0
for i in range(10,1001):
    multi = 1
    for j in str(i):
        multi *= int(j)
    sum += multi
print(sum)

2019/06/24 01:13

Hyebin Oh

스스로 썼는데 같은 코드가 이미 있네요...

print(sum([eval('*'.join(str(x))) for x in range(10,1001)]))

2021/12/18 15:49

이준우

total = 0
for i in range(10, 1001):
    i = str(i)
    multipled = int(i)
    for i2 in i:
        multipled *= int(i)

    total += multipled


print(total)

답 : 1199498407500445

2016/04/09 17:12

정 우주

multipled = 1 이 맞는 것 같습니다. - Flair Sizz, 2016/04/17 18:19
multipled *= int(i2)도 함께 수정해야 합니다. - mr. gimp, 2020/01/20 01:56

a = 0

for i in range(10,1001):        
    l=[]       
    l.append(str(i))       
    b = 1      
    for j in range(len(l[0])):            
         b *= int(l[0][j])        
    a += b

print a

93150

2016/04/12 12:03

김 기수

  • C# 입니다, 문자열로 구분하는 방법도 있지만, 저는 나머지와, 나눗셈을 이용하였습니다.
  • 구문을 줄여보려고 했구요, 보통은 for문에 두개 이상의 변수선언과 카운팅이 되는경우는 드물긴 합니다.
  • 사칙연산에서 곱하기의 순서는 없으므로, 뒤에자리부터 곱해지는 방식입니다.
int sum = 0;
for (int i = 10, t = i; i <= 1000; t = ++i)
{
    int r = t % 10;
    while ((t /= 10) > 9) r *= t % 10;
    sum += r *= t % 10;
}
Console.Write(sum);

2016/04/12 20:41

이 우람

3.5 로 작성했습니다.

multisum=1
for a in range(10,1001):
    x=1
    for b in str(a): 
        x=x*int(b)
    multisum=multisum+x

print("multisum=",multisum)

2016/04/17 00:05

Dr.Choi

reduce 좀 기본 함수로 돌려놔주세요 GVR님아 ㅠㅠ

from functools import reduce

def do(n):
    return reduce(lambda x, y: x * y, [int(x) for x in str(n)], 1)

print(sum([do(x) for x in range(10, 1001)]))

2016/04/20 11:23

룰루랄라

var sum = 0;
for (var i = 10; i <= 1000; i++) {
    var data = [];
    var multiple = 1;
    for (var j = 0; j < i.toString().length; j++) {
        multiple *= Number(i.toString().substring(j,1+j));
    }
    sum += multiple;
}
console.log(sum);

2016/04/20 17:03

Ovalle Loria

자바로 작성

        int sum=0;
        for(int i=10;i<=1000;i++){
            int result=1;
            // i값이 내부에서 변하면 않된다. 
            // 임시변수 n에 대입하고 n으로 계산
            int n = i; 
            while(n>0){
                result *= n%10;
                n /= 10; // 1의자리 버리기
            }
            // System.out.println(i + ":" + result);
            sum += result;
        }
        System.out.println("답 : " + sum);

2016/04/20 20:01

김중운

sum = 0
mul = 1
for i in range(10,1001):
    a = str(i)
    b = list("%d" %i)
    for j in range(len(b)):
        mul = mul * int(b[j])
    sum = sum+mul
    mul=1

sum

답은 93150 처음으로 문제푸는데 오래걸렸지만 뿌듯하네요

2016/04/21 21:30

Lee Sung Hyun

python 2.7

print sum(map(lambda x:reduce(lambda a,b:int(a)*int(b),str(x)),range(10,1001)))

2016/04/22 19:35

상파


public class numberqom {

    public static void main(String[] args) {
        int sum = 0;
        int sum1=0;
        int k1;
        int k;
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                k = i * j;
                sum += k;
                System.out.println(i + "*" + j + "=" + k);
            }
            System.out.println(sum);
        }
        for (int i1 = 1; i1 < 10; i1++) {
            for (int j1 = 0; j1 < 10; j1++) {
                for (int i2 = 0; i2 < 10; i2++) {
                    k1 = i1 * j1*i2;
                    sum1 += k1;
                    System.out.println(i1 + "*" + j1+"*" +i2+ "=" + k1);
                }

            }
            System.out.println(sum1);
        }
       System.out.println(sum+sum1);
    }

}

2016/04/26 10:50

kwak

result = 0
for j in range(11, 1001):
    mul = 1
    for i in str(j):
        mul *= int(i)  
    result += mul

print(result)

print("=" * 20)

print(sum([eval("*".join(str(x))) for x in range(10, 1001)]))

2016/04/27 10:54

SanghoSeo



b=0 #1의자리
a=0 #10의자리
c=0 #100의자리
d=0 #1000의자리
e=0

while d*1000+c*100+a*10+b<1001:
    #print(d*1000+c*100+a*10+b)
    if c==0:
        e=e+a*b
    else:
        e=e+a*b*c

    if b==9:
        if a==9:
            a=0
            b=0
            c=c+1            
            if c==10:
                a=0
                b=0
                c=0
                d=d+1
        else:
            b=0
            a=a+1
    else:
        b=b+1


print(e)


93150

비효율적이란건 알아요 ㅜㅜ

2016/04/28 13:52

이 지성

operator.mul reduce product

>>> import operator
>>> from functools import reduce
>>> from itertools import product
>>> calc = lambda digits: sum(reduce(operator.mul, i) for i in product(range(1,10), repeat=digits))
>>> calc(2) + calc(3)
93150

2016/05/03 16:01

Park Ohyoung

@Test
    public void 각숫자분해하고곱하기합() {
        double result = 0d;
        for (int i = 10; i < 1001; i++) {
            result += (i % 10) == 0 ? 0 : basicSum(i);
        }
        logger.debug("{}", result);
    }

    private double basicSum(double head) {
        double first = (head % 10);
        double second = head < 100 ? Math.floor(head / 10) : Math.floor(head / 10) %10;
        double third = Math.floor(head / 100);
        double result = head < 100 ? first * second : first * second * third;
        logger.debug("{} >>> {} * {} = {}", head, first , head > 100 ? String.format("%s * %s", second, third) : second, result);
        return result;
    }

답 : 93150

2016/05/03 19:25

Lee Brandon

storage = 0

for b in range(0,10): #100
    for c in range(0,10): #10
        for d in range(0,10): #1
            result = (b * 100) + (c * 10) + d

            if len(str(result) ) == 2:
                multiply = c * d
                storage += multiply

            if len(str(result) ) == 3:
                multiply = b * c * d
                storage += multiply

print ("Result = %s" % (storage) )
c = 0 #global

def disassemble(i):
    b = 1

    for j in str(i):
        list = []   
        list.append(j)

        for x in list:
            b *= 1 * int(x)

    c += b  
    global c

for i in range(10,1001):
    disassemble(i)

print (c)

2016/05/07 11:47

C13H12N4O2

s=0
for i in range(10,1001):
    m=1
    for j in str(i):
        m=m*int(j)
    s+=m

print("sum = %d" % s)

2016/05/14 16:40

[email protected]

total = 0
line = ""

for i in range(10,1001):
    value = 1
    for j in str(i):
        value = value * int(j)

    total = total + value

print ("Total Sum is %d\n" %total)

2016/05/16 23:47

Coke

sum(sapply(c(10:1000), 
           function(x){for(i in 1:nchar(x)) tmp2[i] = as.integer(substr(x, i, i)); prod(tmp2)}))

R에서 작성했습니다. 감사합니다.

2016/05/18 10:45

Byun Seongjun 변성준

Python 3.5

total = 0

for num in range(10, 1001):
    value = 1
    for s in str(num):
        value *= int(s)
    total += value

print(total)

2016/05/20 00:55

Analyticsstory

Sum = 0
for a in range(10,1001)
    N = str(a)
    Mul = 1
    for b in N
        Mul = Mul * b
    Sum = Sum + Mul
print(Sum)

파이션

str(a) 는 list(str(a)) 랑 같은건가요??

2016/05/25 10:49

최정진

다릅니다. str(a)는 문자열이고 list(str(a))는 리스트입니다. 문자열은 수정 불가능하고 리스트는 수정 가능합니다. - Flair Sizz, 2016/07/03 23:40
  • 파이썬 3.5 입니다.
  • 한 숫자 내에서 숫자를 문자열화 하여 각 요소별로 곱한 후 결과를 리턴하여 이를 더하는 방식으로 구현 하였습니다.
total_result = 0

for i in range(10, 1001):
    num_result = 1
    for j in range(0, len(str(i))):
        num_result = num_result * int((str(i)[j]))
    total_result = total_result + num_result

print(total_result)

2016/05/27 11:23

식섭

sum = 0
sum_mid = 0

for number in range(10,1001):

    sum_mid = 0

    for idx in range(0,len(str(number))):
        if idx == 0:
            sum_mid = int(str(number)[idx])
        else:
            sum_mid = sum_mid * int(str(number)[idx])

    sum += sum_mid

print 'result = %s' %sum

2016/05/30 11:59

장 재현

public class num01 {

    public static void main(String[] args) {
        int target = 1000;
        int[] list = new int[target]; // 1000개의 array 생성
        int sum = 0;
        int multi = 1;


        for(int x = 0; x < list.length; x++){ // 디버깅을 위해,,,
            list[x] = x;
            if(x == 999) {
                System.out.println("x는 999다");
            }
        }

        for(int x = 10; x < list.length+1; x++){
            char[] c = (""+x).toCharArray();
                for(int i=0;i<c.length; i++) {

                    multi = multi * Character.getNumericValue(c[i]);
                    System.out.println("multi = " + multi);
                    }
                sum += multi;
                multi = 1;
                }

        System.out.println("sum = " + sum);
        }

}

2016/06/02 17:14

이 자현

C++이에요.정답인 93150을 출력합니다.

#include <iostream> 
#include <cstdio> 
#include <algorithm> 
using namespace std; 

int main(){
    int sum = 0; 
    for (int i = 10; i <= 1000; i++){
        int val = i;  
        int prod = 1; 
        while (val){
            prod *= (val%10);  
            val /= 10;  
        }
        sum += prod;  
    }
    printf("%d\n",sum); 
    return 0; 
}

2016/06/05 00:11

iljimae

#include <cstdio> #include <algorithm> 이 두 줄은 필요가 없어 보입니다. - Flair Sizz, 2016/07/04 16:37

파이썬 2.7

add=list()
a=list()
sum=0
for k in range(10,1001):
    u=str(k)
    a.append(u)

for i in a:
    if len(i)==2:
        add.append(int(i[0])*int(i[1]))
    elif len(i)==3:
        add.append(int(i[0])*int(i[1])*int(i[2]))
    else:
        add.append(int(i[0])*int(i[1])*int(i[2])*int(i[3]))
for j in add:
    sum=sum+j

print sum


2016/06/07 17:27

물방울

package main

import (
    "strconv"
    "fmt"
)

func main() {
    sum := 0
    for i := 10; i <= 1000; i++ {
        s := strconv.Itoa(i)
        calc := 1
        for _, v := range s {
            num := (int)(v - '0')
            calc *= num
        }
        sum += calc
    }
    fmt.Println(sum)
}

2016/06/15 22:10

uuuuuup

결과는 93150 입니다.

다른 분 코드를 참고하여 작성했습니다. '*'.join() << 요건 참 신기한 기능이네요 ㅎㅎ

python 3.5

st = 10
ed = 1000
sum = 0
for n in range(st, ed+1): #range 함수를 사용하여 10~1000 까지 loop 수행
# 1. 각 숫자마다 List 화하여 '*' 를 Join , (10경우 [1, 0]으로 리스트, join 함수에 의해 1*0 이 됨. )
# 2. eval 함수로 실제 연산, 
# 3. 연산된 값을 sum 함수에 합산대입
    sum += eval('*'.join(list(str(n)))) 
print(sum)

2016/06/19 17:45

타울

Swift 2.2로 작성하였습니다.

let result = (10...1000)
    .map { (i: Int) -> [Int] in String(i).characters.map { j -> Int in Int(String(j))! } }
    .map { (i: [Int]) -> Int in i.reduce(1, combine: *) }
    .reduce(0, combine: +)

print(result)

2016/06/23 06:39

Ahn Jung Min

Python Coding

sum_set = [eval("*".join(str(i))) for i in range(10,1001)]
print(sum(sum_set))

2016/06/24 18:00

Kim Dalwoo

array = [0,0,0,0,0,0,0,0,0,0]

result = 0

for n in range(10, 1001) : 
    temp = 1
    while n > 0 :
        temp *= n % 10
        n = n // 10
    result += temp;

print (result)

2016/06/27 04:59

안 동환

C코드. void main() { int a,b,c,d,sum; int i; sum=0; int total=0;

for(i=10; i<=1000; i++)
{
    a=i%10;
    b=i/10;
    sum= a*b;

    total+=sum;
}
printf(" %d\n", total);

}

2016/07/01 16:35

Song Ki Hyun

aList= []
sumList = 0

for num in range(10,1001):
    while num > 0:
        temp = num%10
        aList.append(temp)
        num //= 10
    multiplied_num=1
    for i in aList:        
        multiplied_num *= i
    sumList += multiplied_num
    aList=[]

print(sumList)

2016/07/04 16:15

김종국

자바입니다.


public class 각숫자분해하여_곱하기의_전체합_구하기_1부터1000 {

    public static void main(String[] args) {

        int sum = 0;

        for(int i=10; i<=1000; i++) {

            String strNum = String.valueOf(i);

            int mult = 1;

            for(int j=0; j<strNum.length(); j++) {
                mult *= Integer.parseInt(String.valueOf(strNum.charAt(j)));
            }

            sum += mult;
        }

        System.out.println(sum);
    }

}

2016/07/07 16:46

강승윤

include

void main() { int i = 10, a, integer = 0, b, it = 1, result = 0; printf("숫자를 입력하세요 : "); scanf("%d", &a); for (i; i <= a; i++){ b = i;

    while (b != 0){
        integer = b % 10;
        b = b / 10;
        it *= integer;
    }
    result += it;
    it = 1;
}

printf("값은 = %d \n", result);

}

2016/07/08 13:31

양 준모

result=[]
for k in range(10, 1001):
    k0=str(k)
    r=1
    for i in range(len(k0)):
        r=r*int(k0[i])
    result.append(r)

print(sum(result))

2016/07/14 23:10

최승호

C로 작성했습니다.

#include <stdio.h>

void mod(int i);

int main(void)
{
    int i=0;
        printf("10~1000까지의 숫자를 입력하세요.\n");
        scanf_s("%d", &i);

        if (i > 9)
        {
            mod(i);
        }
        else
        {
            printf("10미만의 숫자는 입력 불가능 합니다.\n");
        }

        return 0;
}

void mod(int i)
{
    int a;
    int temp;
    int sum=0;

    int tem;


    tem = i;

    for (i; i > 9; i--)  // i값을 1씩 줄여나간다
    {
        temp = i; // i값은 변하면 안되기 때문에 temp에 i값을 저장하고 temp로 계산

        int mul = 1; // mul에는 계속 값이 쌓이기 떄문에 한번 실행 후 다시 1로 초기화하여 계산

        while (temp > 0) // temp가 0보다 클때까지 돌아간다
        {

            a = temp % 10; // temp를 모드연산하여 a에다 저장
            mul *= a; // a * mul을 mul에 저장 ex) 257 = 2 x 5 x 7을 수행하기위해 mul에 저장
            temp = temp / 10; // 모드연산이 한번 일어난 뒤 입력받은값의 몫을 기준으로 0보다 클때까지 계속해서 진행

        }
        sum += mul; // 곱한 값을 가지고 있는 mul을 sum에다 대입해서 계속해서 뒤에 있는 수의 곱들을 더해 누적해서 저장

    }

    printf("%d까지의 곱의 합은 %d 입니다.\n", tem, sum);
}

2016/07/15 16:06

또뺏음

C로 재귀를 이용하여 작성했습니다.

#include <stdio.h>

int get(int i);

int main(void)
{
    int total = 0;
    int i;
    for (i = 10; i <= 1000; i++)
    {
        total += get(i);
    }
    printf("%d", total);
}

int get(int i)
{
    if (i < 10)
        return i;
    else
    {
        return i % 10 * get(i / 10);
    }
}

2016/07/20 13:38

유한길

파이썬 3.4 입니다.

sum_num = 0
start = int(input("start: "))
end = int(input("end: "))
for i in range(start,end+1):
    list_num = [str(i)[x] for x in range(len(str(i)))]
    mul_num = 1
    for j in range(len(str(i))):
        mul_num *= int(list_num[j])
    sum_num += mul_num

print(sum_num)

결과는

pi@raspberrypi:~/example $ python3 summulnum1.py
start: 10
end: 1000
93150

2016/07/21 04:11

예강효빠

int arr[] = new int[4]; int total=0;

    for(int i = 10 ; i<=1000 ; i ++ ){
        if(i <100){
            arr[0]= i%10;
            arr[1]= i/10%10;
            total+=arr[0]*arr[1];
        }else if(i <1000){
            arr[0]= i%10;
            arr[1]= i/10%10;
            arr[2]= i/100%10;
            total+=arr[0]*arr[1]*arr[2];


        }
    }
    System.out.println(total);

2016/07/25 17:50

김치영

c++로 풀었습니다.

#include <iostream>

using namespace std;

int main(){
    int start, end;
    int num=0;
    int temp=0,result=0;

    cin >> start;
    cin >> end;

    for(int i=start; i<=end ; i++){
        temp = i % 10;
        num = i/10;
        while(num>0){
            temp = temp * (num % 10);
            num = num/10;
        }
        result = result + temp;
    }
    cout << result << endl;
    return 0;
}

2016/07/25 23:06

young

    public static void main(String[] args) {
        int sum=0,mul=0;
        String str;
        char[] ch = new char[]{};
        for(int i=10; i<=1000; i++){
            str = i+" ";
            ch = str.toCharArray();
            mul=1;
            for(int j=0; j<ch.length-1; j++){
                mul*=(int)ch[j]-48;
            }
            sum+=mul;
        }
        System.out.println(sum);        

    }

2016/07/25 23:49

Oh Tae Gyeoung

답은 93150나옵니다.. 다른 방법으로 더 줄여봐야 겠습니다 ㅠㅠ - Oh Tae Gyeoung, 2016/07/25 23:51
    public static void main(String[] args) {
        int sum=0,temp=0;
        for(int i=10,mul=1; i<=1000; i++,mul=1){
            temp = i;
            while(temp>1){
                mul*=temp%10;
                temp/=10;
            }
            sum +=mul;
        }
        System.out.println(sum);
    }

2016/07/26 00:34

Oh Tae Gyeoung

더 줄여봤습니다 !! - Oh Tae Gyeoung, 2016/07/26 00:35
a=int(input("Strat : "))
b=int(input("End : "))
c=0
for i in range(a,b+1):
    c+=eval("*".join(str(i)))

print(c)

Python 3.5.2

2016/07/27 20:55

Zee

C언어로 작성했습니다

include

include

  • int main(void) { int i, j, k,l; int save_num2[10] = {}; int save_num[4] = {0,0,0,0 }; int analsist = 0; int temp = 0; int sum2 = 0; int sum1 = 0; for (i = 10; i < 1001; i++) { sum1 = 1; analsist = i; j = 0; k = 0; for (;analsist>0;) { temp = analsist % 10; save_num[j] = temp; j++; analsist = analsist / 10;

    }
    for (k = 0; k < j; k++)
    {
        sum1 = sum1*save_num[k];
    
        save_num[k] = 0;
    }
    sum2 = sum2 + sum1;
    

    }

    printf("0부터 %d까지의 숫자 분석 후 곱의 합은 %d 입니다\n", i-1,sum2); system("pause"); }

2016/07/30 09:29

Joohyun Son

int val = 0;
for(int i = 10 ; i < 1001 ; i++) {// 10 ~ 1000
   String num = Integer.toString(i);// to string
   int sum=1;
   for(int j = 0 ; j <= num.length()-1 ; j++ ) {// 각 숫자의 index 찾기위한 index지정
      sum *=  Integer.parseInt(num.charAt(j)+"");// 숫자마다 *연산 하여 sum 담음
   }
   val += sum;// sum에 담아진 각 숫자를 val 최종적으로 + 합산함
}
System.out.println("10 to 1000 multi div sumVal : " + val);

Java

2016/08/03 10:23

이 재희

def multi_numbs(start, end):
    result_of_multi = []
    for num1 in range(start,end+1):
        result_multi = 1
        for i in str(num1):
            multi = int(i)
            result_multi *= multi
        result_of_multi.append(multi)
    return sum(result_of_multi)

print multi_numbs(10,1000)

2016/08/04 00:12

kim SeongHyeon

  • javascript로 작성하였습니다.
var result = 0;

for(var i=1; i<=1000; i++){
    var num = i;

    var multi = 1;
    while (num > 0) {
        multi *= num % 10;
      num = parseInt(num/10);
    }
    result+=multi;
}
console.log(result);

2016/08/08 10:31

song ah-young

def test_2(start_num, end_num):
    sum = 0
    for i in range(start_num, end_num+1):
        sum += divide_num(i)
    return sum

def divide_num(num):
    sum = 1
    str_from_num = list("%d" % num)
    for i in str_from_num:
        sum *= int(i)
    return sum

print(test_2(10, 1000))

2016/08/08 23:17

정 우순

package codingdojang;

import java.util.Scanner;

class sumc{
    Scanner sc;
    int n;
    int sum =0;
    sumc(){
        sc = new Scanner(System.in);
        System.out.print("숫자입력  :");
        n = sc.nextInt();
    }
    public void check(){
        for(int i = 10; i<=n;i++){
            if(i<100){
                sum = sum + (i%10) *(i/10%10);
            }
            else if(i<1000){
                sum = sum + (i%10) *(i/10%10)  * (i/100%10);
            }
            else if(i<10000){
                sum = sum + (i%10) *(i/10%10)  * (i/100%10) * (i/1000%10);

            }
        }
    }
    public void disp(){
            System.out.println("합  : "+sum);
    }
}

public class lv1_02 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        sumc s = new sumc();
        s.check();
        s.disp();
    }

}

2016/08/10 20:25

김준호

s=0
for i in range(10, 1001):
    i=str(i)
    r=1
    for k in range(len(i)): r*=int(i[k-1])
    s+=r
print(s)

2016/08/13 12:41

최승호

  • C 로 풀었습니다.
/* 2016.08.16.Tue

        10 ~ 1000 까지 각 숫자를 분해하여 곱한 후, 전체 합 구하기

*/
#include <stdio.h>

#define MAX     1001

int main(void)
{
#ifdef MY_ANSWER
        int i;
        int temp, buf, sum = 0;

        for (i = 10; i < MAX; i++) {
                temp = i; buf = 1;
                while (temp != 0) {
                        buf *= temp % 10;
                        temp /= 10;
                }
                printf("i = %3d : buf = %3d\n", i, buf);
                sum += buf;
        }

        printf("===== print out sum (A1) =====\n");

        printf("sum = %3d\n", sum);

#elif OTHER_ANSWER

#endif

        return 0;
}

2016/08/16 09:53

WJ

for n in range(10,1001): //처음 범위
    for i in str(n): //n을 문자열로 바꿈
        mul = 1 //곱셈 값이 저장될 변수
        mul *= int(i) //곱셈
    res += mul //합 결과가 저장됨
print res

2.7.6

2016/08/19 23:21

kissme123

#include <stdio.h>

void main() {
    int arr[10] = { 0, };
    int i, j;
    int len;

    for (i = 26; i <= 43; i++) {
        j = i;
        while (j != 0) {
            arr[j % 10]++;
            j /= 10;
        }
    }

    for (i = 0, len = sizeof(arr) / sizeof(arr[0]); i < len; i++) {
        if(arr[i] != 0)
            printf("%d : %d \n", i, arr[i]);
    }
}

2016/08/20 19:39

Kim Yunseop

#include <string>
#include <iostream>

const int START     = 1;
const int END       = 1000;

void totalSum(unsigned int& total, int& value);

int main() {
    unsigned int total = 0;
    for (int i = START; i <= END; i++)
    {
        totalSum(total, i);
    }

    std::cout << "Total : " << total << std::endl;

    return 0;
}

void totalSum(unsigned int& total, int& value) {
    std::string strVal = std::to_string(value);
    unsigned int multiple = 1;
    for (int index = 0; index < strVal.length(); index++)
    {
        const char digit = strVal.at(index);
        multiple *= std::atoi(&digit);
    }
    total += multiple;
}

C++ 작성 Total : 93195

2016/08/22 01:58

정 태석

Python 2.7

sum = 0
for i in range(10,1001):
    tmp1 = str(i)
    tmp2 = 1
    for j in tmp1:
        tmp2 = tmp2 * int(j)
    sum += tmp2
print sum

2016/08/23 11:43

빠리공원

Python 2.7#

list=[]
sum=0
for i in range(10,1001):
    num=1
    for j in str(i):
        num*=int(j)
    sum+=num
    list.append(num)

print sum

2016/08/23 17:21

leye195

def CalcMultiValue(start, end):
    totalSum = 0

    for i in range(start,end):
        multipleValue = 1 #default value must be '1' not '0'
        for j in str(i):            
            multipleValue *= int(j) #mutiply each value after changing str -> int

        totalSum += multipleValue

    return totalSum

print(CalcMultiValue(10,1001))

2016/08/26 08:41

Kim Sean

def multiplie():

    result = 0

    for loop in range(10,1001):
        temp = 1

        for num in str(loop):
            temp *= int(num)

        result += temp


    return result



2016/08/28 00:13

sega

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int start = 10;
            int end = 1000;
            Int64 result = add(start, end);
            Console.WriteLine(result);

        }
        static Int64 add(int _start, int _end)
        {
            Int64 result = 0;
            for(int i = _start; i <= _end; i++)
            {
                int mok = i;
                int nam;
                Int64 sub_result = 1;
                while(mok != 0)
                {
                    nam = mok % 10;
                    mok = mok / 10;
                    sub_result *= nam;
                }                
                //Console.WriteLine(sub_result);
                result += sub_result;              
            }
            return result;
        }
    }   
}


2016/08/29 02:08

김 영현

total = 0
for number in range(10, 1001) :
        strNumber = str(number)
        tmp = 1
        for one in strNumber :
                tmp = tmp * int(one)

        total = total + tmp

print(total)

2016/08/30 14:45

박창석

python

a=1
su=0
for i in range(10,1001):
    for j in str(i):
        a=a*int(j)
    su= su+a
    a=1
print(su)


2016/09/02 21:11

정석철

자바

package study;

public class study {

    public static void main(String[] args) {
        System.out.println(solve(10, 1000));
    }

    public static int solve(int a, int b){
        int sum=0, mul, temp;
        for(int i=a; i<b+1; i++){
            temp=i;
            mul=1;
            while(temp>0){
                mul*=temp%10;
                temp/=10;
            }
            sum+=mul;
        }
        return sum;
    }
}

2016/09/09 09:08

JD

#include <stdio.h>

#define START 10
#define END 15

int main(){

    int n = 0;
    int m = 1;
    int s = 0;
    for(int i = START; i <= END; i++) {
        n = i;
        if(n == 0) { m = 0; }
        while(n > 0) {
            m *= n % 10;
            n /= 10;
        }
        s += m;
        m = 1;
    }

    printf("s:%d", s);
}

2016/09/15 13:02

이 종성

python3.6.0

t=[]
for i in range (1,10):
    for j in range (1,10):
# j를 0부터 : if문 필요
# j를 1 부터 : if문 필요 없지만 내가 판단한 것
#뭐가 프로그래밍적으로 옳은지? 둘다 옳으면 빠른것- 2번째 ??

        t.append(i*j)

for i in range (1,10):
    for j in range (1,10):
        for k in range (1, 10):
            t.append(i*j*k)

#print(len(t))

sum = 0
for i in range (len(t)):
    sum +=t[i]
    print (sum)

2016/09/16 23:00

Park GunHee

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void mulnumber(int, int);
//두 숫자를 임의로 입력받는다고 가정
int main() {
    int start, end;
    puts("두 숫자를 입력 : ");
    scanf_s("%d %d", &start, &end);

    mulnumber(start, end);

    system("pause");
    return 0;
}

void mulnumber(int start, int end) {
    int p, mul, sum = 0;

    for (int i = start; i <= end; i++) {
        p = i;
        mul = p % 10;
        while (p > 10) {
            p /= 10;
            mul = mul * (p % 10);
        }
        sum += mul;
    }
    printf("총 합은 %d", sum);
}

2016/09/20 12:03

개허접

def multi_numbs(start, end):
    result_of_multi = []
    for num1 in range(start,end+1):
        result_multi = 1
        for i in str(num1):
            multi = int(i)
            result_multi *= multi
        result_of_multi.append(multi)
    return sum(result_of_multi)

print multi_numbs(10,1000)

2016/09/21 15:44

머얼씨

#include <stdio.h>
#include <stdlib.h>

int main() {
    int count;
    int result = 0;
    int Alladd = 0;
    int quotient = 0;
    int remainder = 0;

    for(count = 10; count < 1000+1; count ++)
    {
        quotient = count / 10;
        remainder = count % 10;

        result = quotient * remainder;
        Alladd += result;
    }
    printf("%d\n", Alladd);
}

2016/09/26 22:38

도장 코딩

Python 3.5.2로 풀었습니다.

result = 0
for x in range(10, 1000):
    c = x // 100
    b = (x % 100) // 10
    a = x % 10
    if c == 0:
        result += a * b
    else:
        result += c * b * a
print(result)

2016/10/02 18:36

C295HB

#include<iostream>
using namespace std;

int main()
{
    int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
    int total = 0;

    for (int i = 10;i < 1000;i++)
    {
        if (i >= 10 && i < 100)
            total += ((i / 10)*(i % 10));
        else if (i >= 100 && i<1000)
            total += ((i / 100)*(((i%100)-(i%10))/10)*(i % 10));
    }
    cout << "총 합은 " << total << "입니다." << endl;
    /*총 합은 93150입니다.*/
}

2016/10/07 22:13

marshawnLynch

include

int main(){

int num; //입력받을 숫자
int i,k,r=0, sum =0; //k는 arr배열 크기; r은 result_arr크기
int j, w, z; //반복문에 사용되는 변수
int arr[10]; //분해된 숫자 임시 저장 배열, 계속 초기화됨 
int result_arr[20]; //분해된 숫자 곱 저장 배열.

//result_arr초기화
for(j = 0; j<20; j++) {
    result_arr[j] = 1;
}

for(i = 0; i<5; i++) {

    printf("분해할 숫자 입력(10~1000): ");
    scanf("%d", &num);

    //숫자 분해해서 배열에 입력
    k = 0;
    while( num != 0) {
        arr[k] = num % 10;
        num /= 10;
        k++;
    }

    //arr배열에 분리된 숫자 곱해서 result_arr에 입력
    for(z = 0; z<k; z++) {
        result_arr[r] *= arr[z];
    }
    r++; //arr배열에 저장된 숫자 모두 곱한 것이 result_arr배열 하나의 인덱스에 입력되도록.
}

//최종 저장된 result_result배열의 값 출력, 모든 원소 합 구하기
for(w = 0; w<r; w++) {
    sum += result_arr[w];
    printf("%d + ", result_arr[w]);
}

printf("= %d", sum);

return 0;

}

2016/10/10 14:43

박소정

n = 0
for i in range(10,1001):
    h = 1
    for j in str(i):
        h *= int(j)
    n += h

print(n)

2016/10/13 13:54

훠니

public static void main(String[] args) {
        int sum=0;

        for(int i=10; i < 1000 ; i++){
            if(i/1000 > 0){
                sum += (i/1000) * ((i%1000)/100) * ((i%100)/10) * (i%10);
            }else if(i/100 > 0){
                sum += (i/100) * ((i%100)/10) * (i%10);
            }else{
                sum += (i/10) * (i%10);
            }
        }
        System.out.println(sum);
    }

2016/10/14 01:44

이동규

파이썬3.5

import functools
import operator

f = lambda n: functools.reduce(operator.mul, (int(x) for x in str(n)))
r = sum(f(n) for n in range(10, 1000+1))
print(r)
# 93150

2016/10/18 17:04

디디

Java

import java.util.function.Function;

public class DivideNSum {
    private static Function<Integer, Integer> divideNMultiply = n -> {
        int muliply = n % 10;
        n = n / 10;
        while (n > 0) {
            muliply *= n % 10;
            n = n / 10;
        }
        return muliply;
    };

    private static Function<Integer, Integer> divideNSumAll = n -> {
        int sum = 0;
        for (int i = 10; i < n; i++) {
            sum += divideNMultiply.apply(i);
        }
        return sum;
    };

    public static void main(String[] args) {
        System.out.println(divideNSumAll.apply(1000));
    }
}
  • 결과: 93150

2016/10/20 11:10

compert

파이썬 코드입니다. 제대로 돌아가는지 확인하기 위해서 n을 입력받아 10부터 n까지의 답을 구하는 코드로 짰습니다.

'''
ex: 10 to 15
10 = 1*0 = 0
11 = 1*1 = 1
12 = 1*2 = 2
13 = 1*3 = 3
14 = 1*4 = 4
15 = 1*5 = 5

so, ans = 0+1+2+3+4+5 = 15

now, how about 10 to n?
'''

n=0
while n<10:
    n = int(input("To what? "))


target = [x for x in range(11,n+1)]     #10 = 1*0 = 0, no matter the ans.
tmp = 0

for i in target:
    a = 1
    for j in str(i):
        a *= int(j)
    tmp += a

print(tmp)

파이썬 초보입니다. 많은 피드백 부탁드립니다!

2016/10/20 21:16

조 우성

static void main(string[] args)
{
int allresult = 0;
  string text = onsle.ReadLine();
  int fnumber = text.Split('~')[0];
  int snumber = text.Split('~')[1];
  for(int i = fnumber; i<=snumber;i++)
  {
   int result = 1
   string[] s = fnumber.ToChar();
  if(s.Contain("0"))
{
result = 0;
countinue;
}
foreach(string st in s)
{
 result *= int.Parse(st);
}
allresult += result;
  }
Console.WriteLine(allresult);
}

2016/10/21 15:53

정우진

#include <stdio.h>
#include <string.h>

namespace std {
    inline char* to_string(int value) {
        static char buffer[4] = {0};
        sprintf(buffer, "%4d", value);
        return buffer;
    }
};

int main() {
    int sum = 0;
    char* string = NULL;

    for (int i=10; i<=1000; i++) {
        string = std::to_string(i);

        int val1 = string[0]-48;
        int val2 = string[1]-48;
        int val3 = string[2]-48;
        int val4 = string[3]-48;

        sum += (val1<0?1:val1) * (val2<0?1:val2) * (val3<0?1:val3) * (val4<0?1:val4);
    }

    printf("the sum (10 to 1000) is %d\n", sum);
}

[OUTPUT]
the sum (10 to 1000) is 93150

2016/10/24 00:17

김 민수

public class Main {

    public static void main(String[] args) {

        int total = 0;

        for (Integer i = 10; i <= 1000; i++) {

            char[] mul = i.toString().toCharArray();
            int result = 1;

            for (char c : mul) {

                result *= (int) (c - '0');
            }
            total +=result;

        }

        System.out.println("result : "+total);

    }

}

2016/10/27 00:21

김 수호

#include <stdio.h>

void mulSum(int start, int end);

int main()
{
    int start, end;

    printf(" 범위 : ");
    scanf("%d %d",&start, &end);

    mulSum(start, end);
}

void mulSum(int start, int end) 
{
    int num[10] = {0};
    int sum = 0;
    int mul = 1;
    for(int i=start; i<=end; i++)
    {
        mul = 1;
        if (i == 1000) {
            sum += 0;
        }
        else if(i >= 100 && i<=999) {
            mul *= i/100;
            mul *= (i%100)/10;
            mul *= i%10;
            sum += mul;
        }
        else if(i>=10 && i<=99) {
            mul *= i/10;
            mul *= i%10;
            sum += mul;
        }
    }
    printf ("%d ",sum);
}



2016/10/30 07:10

오씨

package test002;

public class Practice {
    protected int getLengthOverTen(int num) {
        if (num < 10) {
            return 0;
        }

        return (int) Math.log10(num) + 1;
    }

    protected int getMultiplyNumber(int num) {
        int length = getLengthOverTen(num);
        if (length <= 1) {
            return 0;
        }

        int result = 1;

        for (int i = 0; i < length; i++) {
            result *= (num % 10);
            num /= 10;
        }

        return result;
    }

    public int getSumAllResult(int lowNum, int highNum) {
        int result = 0;

        for (int i = lowNum; i <= highNum; i++) {
            result += getMultiplyNumber(i);
        }

        return result;
    }

    public static void main(String[] args) {
        int result = new Practice().getSumAllResult(10, 1000);

        System.out.println("result:" + result);
    }
}

result:93150

2016/10/31 23:07

얌얌

#python 3.5

result = []

for i in range(10, 1001):
    for j in range(len(str(i))):
        if len(str(i)) == 2:
            mul1 = int(str(i)[j-1]) * int(str(i)[j-2])
            result.append(mul1)
        else:
            mul2 = int(str(i)[j-1]) * int(str(i)[j-2]) * int(str(i)[j-3])   
            result.append(mul2)

sum(result)

2016/11/01 05:44

페르난도

안녕하세요. C++로 풀어봤습니다.

#include<iostream>

using namespace std;

void main()
{
    cout<<"Hello Stranger??"<<endl;

    int totalSum =0;

    for(int i=10; i<=1000; i++)
    {
        int num = i;
        int sum = 1;
        while(true)
        {
            int val = num%10;
            sum *= val;

            num = num/10;
            if( num==0 )
                break;      
        }
        totalSum += sum;
    }

    cout<<totalSum<<endl;
}

93150

2016/11/01 18:21

이재웅

def dis_sum(n,m):
    result1 = []
    for num in range(n,m+1):
        factor = list(str(num))
        m = 1
        for i in factor:
            i_fac = int(i)
            m = m*i_fac
        result1.append(m)

    result2 = 0
    for s in result1:
        result2 = result2 + s

    return result2

2016/11/02 10:57

김현남

sum = 0
for i in range(10,1001):
    j = len(str(i))
    mul = 1
    temp = i
    for k in range(1,j+1):
        mul = mul*(temp%10)
        temp = temp/10
    sum = sum + mul
print sum

2016/11/02 12:16

mch

#include <iostream>
using namespace std;

int main ()
{
    int MaxNum = 1000;
    int tempNum = 0;
    int counter = 0;
    int sum = 0;

    for (counter = MaxNum; counter > 9; counter--) {
        tempNum = counter;
        if ((tempNum / 1000) > 0)
            sum += (tempNum / 1000) * ((tempNum % 1000) / 100) * ((tempNum % 100) / 10) * (tempNum % 10);
        else if ((tempNum / 100) > 0)
            sum += ((tempNum % 1000) / 100) * ((tempNum % 100) / 10) * (tempNum % 10);
        else if ((tempNum / 10) > 0)                
            sum += ((tempNum % 100) / 10) * (tempNum % 10);
    }
    cout << "합 : " << sum << endl;

    return 0;
}

2016/11/02 16:40

seo bum seok

public static void main(String[] args) {
        int total = 0;

        for(int i = 10; i <= 1000; i++) {

            int quotient = i / 10; //몫
            int remainder = i % 10; //나머지

            if(quotient < 10) {
                total += quotient * remainder;
            }
            else if(quotient >= 10 && quotient < 100) {
                int quotient2 = quotient / 10;
                int remainder2 = quotient % 10;

                total += quotient2 * remainder2 * remainder;
            }

        }
        System.out.println(total);

    }

2016/11/03 11:29

박요한

def MulSum(a,b):
    total = 0
    for x in range(a,b+1):
        mul_list = list(str(x))
        multi = 1
        multot = 0
        for y in mul_list:
            multi *= int(y)
        multot += multi
        total += multot
    return total

m=10
n=1000
print(MulSum(m,n))

2016/11/05 22:05

박 상민

답은 93150 이네요

#include <iostream>
using namespace std;

int main(void)
{
    int sum = 0;
    int mul = 1;
    int j;
    for (int i = 10; i <= 1000; i++)
    {
        j = i;
        while (j / 10 != 0)
        {
            mul = mul * (j % 10);
            j = j / 10;
        }
        mul = mul * j;
        sum = sum + mul;
        mul = 1;
    }
    cout << "합은 : " << sum << "입니다." << endl;
}

2016/11/09 14:44

정 우빈

python 3.5

a=0
for i in range(100, 1001):
    a=a + (eval('*'.join(str(i))))
print (a)

2016/11/10 17:35

이 송걸

public static void productSum(int MIN_RANGE, int MAX_RANGE){
        int totalSum = 0;
        System.out.println("Start");
        for(int num = MIN_RANGE; num < MAX_RANGE +1; num++){
            String strNum = String.valueOf(num);

            if(!strNum.contains("0")){
                int product = 1;
                for(int i = 0; i < strNum.length(); i++){
                    product *= Integer.parseInt(strNum.charAt(i)+"");

                }

                totalSum+=product;
            }
        }

        System.out.println("Sum : "+totalSum);
    }

2016/11/13 22:09

wishwisdom

s_list = []
for i in range(10,1001):
    s = 1
    for digit in str(i):
        s *= int(digit)
    s_list.append(s)

print sum(s_list)

2016/11/14 14:43

바바

public static void main(String[] args) {
        int sum=0;
        for(int i=10;i<=1000;i++){
            Integer temp=i;
            int tmp=1;
            String str[]=temp.toString().split("");
            for(int j=0;j<str.length;j++){
                tmp*=Integer.parseInt(str[j]);
            }sum+=tmp;
            System.out.println(i+":"+tmp);
        }System.out.println("sum :"+sum);

    }

2016/11/15 17:29

신 동리

mult_sum = 0
    for i in range(10, 1001):
        mult = 1
        for digit in str(i):
            mult *= int(digit)
        mult_sum += mult

    print(mult_sum)

2016/11/18 17:00

박인기

sum = 0

for i in range(10, 1001):
    k = 1
    for j in str(i):        
        k *= int(j)
    sum += k

print(sum)

2016/11/20 03:43

읍내노는오빠

def multi(list):
    total = 1
    for i in list:
        total *= i
    return total

print(sum([multi([int(i) for i in str(x)]) for x in range(10, 1001)]))

또는

sum([eval("*".join(str(x))) for x in range(10, 1001)])

Python 3.5.2

2016/11/22 13:00

Yeo HyungGoo

public static void main(String[] args) {

        int nResult = 0;

        for(int i = 10 ; i < 1000; i++){

            int item = i;
            int multiVlaue = 1;

        do{
            multiVlaue *= item%10;
            item = (item / 10);                     
        }

        while(item > 0);

        nResult += multiVlaue;

        }

        System.out.println(nResult);

    }

2016/11/22 21:51

francis

            int Ans = 0;
            for(int i = 10;i<=1000;i++)
            {
                Char[] C = i.ToString().ToCharArray();
                if (!C.Contains(Char.Parse("0")))
                {
                    int MU = 1;
                    for (int j = 0; j < C.Length; j++)
                    {
                        MU *= int.Parse(C[j].ToString());
                    }
                    Ans += MU;
                }
            }
            Console.WriteLine(Ans);

c#

2016/11/26 18:50

Choco

multi=[]
for num in range(10, 1001):
    str_num=[]

    for x in str(num):
        str_num.append(x)

    str_num = '*'.join(str_num)
    multi.append(eval(str_num))

print sum(multi)

2016/11/29 13:32

L JW

include

void main() { int i; int sum = 0;

for (i = 10; i <= 1000; i++) {
    int mul = -1;
    int d = i;
    while(1) {
        if (mul == -1) mul = d%10;
        else mul *= d%10;
        d = d/10;
        if (d == 0) break;
    }
    sum += mul;
}
printf("%d\n", sum);

}

2016/11/30 09:58

리코둔

자바

public class NumTest2 {
    public int getSumResult(char[] num) {
        int result = 1;
        for(int i = 0, size = num.length; i < size; i++) {
            result *= (num[i] - 48);
        }
        return result;
    }

    public int result(int num1, int num2) {
        int result = 0;
        for(int i = num1; i <= num2; i++) {
            result += this.getSumResult(String.valueOf(i).toCharArray());
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(new NumTest2().result(10, 1000));
    }
}

// 답 : 93150

2016/12/14 16:34

Eunjung Ji

# 10 scale
sum_10scale = 0
result_10scale = []
for a in range (1, 10):
    for b in range (0, 10):
        c = a*b
        result_10scale.append(c)
        sum_10scale = sum_10scale + c
print (result_10scale)
print 'Sum of 10 to 99 = ', sum_10scale
print (len(result_10scale))

# 100 scale
sum_100scale = 0
result_100scale = []
for a in range (1, 10):
    for b in range (0, 10):
        for c in range (0, 10):
            d = a*b*c
            result_100scale.append(d)
            sum_100scale = sum_100scale + d
print (result_100scale)
print 'Sum of 100 to 999 = ', sum_100scale
print (len(result_100scale))
print 'Sum of 10 to 999 = ', sum_100scale, '+', sum_10scale, '=', sum_100scale+sum_10scale
print (len(result_10scale+result_100scale))

2016/12/16 13:00

Jang Young Sun

answer 93150 - Jang Young Sun, 2016/12/16 13:00
public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int sum = 0;
        for(int i=10; i<=1000; i++){
            int num = i;
            int mul = 1;

            while(num!=0){
                mul *= (num%10);
                num /= 10;
            }
            sum += mul;
        }
        System.out.println(sum);
    }
}

2016/12/16 15:19

박소정

public class DivdeAndMulti { static int MAX_NUM = 1000;

public static void main(String[] args) {
    int sum = 0;
    int multi =1;

    for (int i =10; i<= MAX_NUM; i++){
        String temp = String.valueOf(i);
        multi = 1;
        for(int j = 0; j < temp.length(); j++){
            multi *= Integer.valueOf(String.valueOf(temp.charAt(j)));
        }        
        sum += multi;
    }

    System.out.println(sum);
}

}

2016/12/19 18:22

Kim Joosang

reduce 구문 연습할 겸, 한 줄로 해보았습니다.

from functools import reduce

print(reduce(lambda a, b: a+reduce(lambda x,y : int(x)*int(y),str(b)), range(10,1001),0))

아래의 코드는 여러 줄로 한 정석적인 답안입니다.

def sumofmultiply(x):
    multiply=1
    for char in str(x):
        multiply*=int(char)
    return multiply

if __name__ == "__main__":
    sum=0
    for x in range(10, 1001):
        sum+=sumofmultiply(x)
    print(sum)

2016/12/20 06:30

박 시우

#include<stdio.h>
#define MAX 1000
int main(void)
{
    int i,sum=0;
    int a,b,c,d[MAX];
    for(i=10;i<MAX;i++)
    {
        if(i<100)
        {   a=i%10;
            b=i/10;
            d[i-10]=a*b;}
        else
        {   a=i%10;
            b=i/10;
            c=i/100;
            d[i-10]=a*b*c;
        }}
        for(i=0;i<MAX-10; i++)
            sum+=d[i];
        printf("10부터 1000까지 합은 %d입니다.\n",sum);
        return 0;
    }

2016/12/20 14:15

oh

#include<iostream>
using namespace std;

void main()
{
    int max, min, mutl;
    int X, Y = 0;
    int sum[10][2] = {};
    int mutl_result = 0;
    cout << "최소 숫자를 입력하세요 :";
    cin >> min;
    cout << "최대 숫자를 입력하세요 :";
    cin >> max;

    for (int i = 0; i < 10; i++)
        sum[i][0] += i;
    //최소수부터 최대수까지 계산을 시작

    for (min; min <= max; min++)
    {
        mutl = 1;
        X = min; // 몫
        Y = X % 10; // 나머지

        while (X != 0) {
            for (int i = 0; i < 10; i++) {
                if (sum[i][0] == Y)
                    sum[i][1] += 1;
            }
            mutl *= Y;
            X = X / 10;
            Y = X % 10;
        }
        mutl_result += mutl;
    }
    cout << "총 계산 값은 :" << mutl_result << endl;
}

2016/12/28 18:51

분당의아들



#python 2.7xx
#파이썬은 사랑입니다

    from operator import mul
    sum(reduce(mul,( int(y)  for y in str(x) )) for x in range(10,1000))

2016/12/29 02:04

Daniel


    from operator import mul
    print sum(reduce(mul,( int(y)  for y in str(x) )) for x in range(10,1000))
    #python 2.7xx

2016/12/29 02:14

Daniel

{.python}
파이썬 2.7입니다
v=[]
for x in range(10,1001):
    nString = str(x)
    mult = 1
    if not ('0' in nString):
        for y in range(0,len(nString)):
            mult *= int(nString[y])
        v.append(mult)

print sum(v)

2016/12/29 12:31

오준균

매트랩으로 작성하였습니다. 10~99까지, 100~999까지 2자리수와 3자리수로 나눠서 계산하였습니다. fix함수는 몫을 나타내고, mod함수는 나머지를 나타냅니다. 3자리 숫자(abc)의 경우 100으로 나눈 몫으로 첫째자리를 구하고(a), 10으로 나눈 몫에서 다시 10으로 나눈 나머지로 가운데자리(b)를 구하였습니다. 셋째자리(c)는 10으로 나눈 나머지로 구하였습니다.

result = 0;
for i = 10 : 1000
    if fix(i/10) < 10
        tmp = fix(i/10) * mod(i,10);
    else
        tmp = fix(i/100) * mod(fix(i/10),10) * mod(i,10);
    end
    result = result + tmp;
end
result

2017/01/01 21:36

주 현태

Python 2.7로 작성하였습니다. 답 : 93150

sum1 = 0
for x in xrange(10, 1001):
    x_s = str(x)
    mul = int(x_s[0])
    for x in x_s[1:]:
        mul = mul * int(x)
    sum1 = sum1+mul

print '총합 = ', sum1

2017/01/05 12:54

조현우

$start = 10;
$end = 1000;
$total = 0;
for($num=$start;$num<=$end;$num++){
    $array = str_split($num) ;
    $total += array_product($array);

}
echo $total;

2017/01/05 18:24

stardust

print(sum([eval('*'.join(str(x))) for x in range(10,1001)]))

#### 2017.01.05 D-413 ####

오호 역시 같은코드가 있네요 ㅎ

2017/01/05 23:31

GunBang

Array(...Array(991)).map((v, i) => i + 10).map(v => v.toString().split('').reduce((v1, v2) => Number(v1) * Number(v2))).reduce((v1, v2) => v1 + v2);

ES6로 작성하였습니다.

sum value = 93150; 인가보군요

2017/01/09 23:40

최 태산

자바소스입니다.

public void t505() {
    long sum = 0L;
    for (int inx = 10; inx <= 1000; inx++) {
        String num = Integer.toString(inx);
        if (num.indexOf("0") > -1) {
            continue;
        } else {
            long sub = 1L;
            int cnt = num.length();
            for (int jnx = 0; jnx < cnt; jnx++) {
                sub *= Integer.parseInt("" + num.charAt(jnx));
            }
            sum += sub;
        }
    }
    System.out.println(sum);
}

2017/01/10 10:37

유승욱

from functools import reduce
def decom_mul_sum(n1,n2):
    return sum(map(lambda n: reduce(lambda x,y: int(x)*int(y), str(n)), range(n1,n2+1)))

2017/01/12 20:12

Song Seoha

Matlab 2012

sum = 0;
for i =10 : 1000
    k = num2str(i);
    mult = 1;
    for n = 1: length(k)
        mult = str2double(k(n))*mult;
    end 
    sum = sum + mult;
end

답: 93150

2017/01/14 21:26

조현우

include

int main(void) { int number[990]; int sum1 = 0; for (int i = 10; i < 1000; i++) { int num[4] = { 1, 1, 1, 1 }; int k = 0; int s = i; while (1) { num[k] = s % 10; if (s / 10 >= 1) { s = s / 10; k++; } else { int sum = 1; for (int j = 0; j < 4; j++) { sum *= num[j]; } number[i - 10] = sum; break; } } } for (int i = 0; i < 990; i++) { sum1 += number[i]; } printf("%d", sum1); return 0; }

2017/01/14 22:09

민영현

            int result = 0;

            var stack = new Stack<int>();

            for (int i = 10; i <= 1000; i++)
            {
                int temp = i;

                while (temp != 0)
                {
                    stack.Push(temp % 10);
                    temp /= 10;
                }

                int mul = stack.Pop();

                while(stack.Count != 0)
                {
                    mul *= stack.Pop();
                }

                result += mul;
            }

            Console.WriteLine($"result : {result}");

분해해서 스택에 넣고 넣은값끼리 곱하고 마지막에 더하기

2017/01/16 14:47

오 예천

var sum = 0;
for(var i = 10;i<=15;i++){
    var num = i;
    var mul = 1;
    while(num>0){
        mul *= num%10;
        num = parseInt(num/10);
    }
    sum += mul;
}
console.log(sum);

2017/01/20 10:39

권혁기

num = [] for i in range(10,1000+1): s = list(str(i)) s = '*'.join(s) num.append(eval(s)) print(sum(num))

2017/01/22 00:33

쑤어이대

#include <stdio.h>

void main()
{
    int Cnt = 0;
    int Cnt2 = 0;
    int Mul = 1;
    int Sum = 0;
    for ( int i = 10; i <= 1000; i++ )
    {
        Cnt2 = i;
        Cnt = i;
        do {
            Cnt = Cnt2 % 10;
            Mul *= Cnt;
            Cnt2 = Cnt2 / 10;
        } while ( Cnt2 != 0 );
        Sum += Mul;
        Mul = 1;
    }
    printf("%d", Sum);
}

2017/01/25 20:15

장예훈

#include <stdio.h>
#pragma warning(disable:4996)
int main(void) {
    int n;
    int sum = 0;
    scanf("%d", &n);
    for (int i = 10; i <= n; i++) {
        int k = i;
        int tmp_sum = k%10;
        k = k / 10;
        while (k > 0) {
            tmp_sum *= k % 10;
            k /= 10;
        }
        sum += tmp_sum;
    }
    printf("%d", sum);
}

2017/01/27 10:48

도야지

import java.util.Scanner;

class NumAccum{
    int startNum;//starting number
    int endNum;//ending number
    public NumAccum() {
    }


    public void setNum(int s,int e){
        this.startNum = s;
        this.endNum = e;
    }


    private int divideNum(int num){
        int result = 1;//for comMultiple
        while(num != 0){
            result *= num%10;
            num = num/10; //separate numbers.
        }
        return result;
    }


    public void calc(){
        int sum=0;//for accumulate sum
        for(int i=this.startNum;i<=this.endNum;i++) 
            sum += divideNum(i);//add divided numbers to 'sum' 
        System.out.println(sum);        
    }

}

public class test5 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        NumAccum num = new NumAccum();
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        num.setNum(num1, num2);
        num.calc();
    }

}

2017/01/30 19:03

김찬

#include <stdio.h>
#include <stdlib.h>

void main()
{

    int arr1[1000];

    int mok, nam, num1, gop = 1, sum = 0;
    printf("10이상 마지막 수 입력 : ");
    scanf_s("%d", &num1);

    for (int i = 0; i < 1000; i++) // 배열 0으로 초기화
    {
        arr1[i] = NULL;
    }

    for (int i = 10; i <= num1; i++)
    {
        mok = i / 10;
        nam = i % 10;

        gop = gop * nam;

        while (mok > 9) // 몫이 10보다 크면 계속 나누기
        {
            mok = mok / 10;
            nam = mok % 10;
            gop = gop * nam;
        }

        gop = gop * mok;
        arr1[i-10] = gop;
        gop = 1;
    }

    for (int i = 0; i <= num1; i++)
    {
        if(arr1[i] != NULL)
        sum += arr1[i];
    }
    printf("%d ", sum);
}

2017/02/03 18:29

정세화

// C++

int Sum( int nMin, int nMax )
{
    int nSum = 0;
    int nMulty = 0;
    int nRivision = 0;

    for( int x = nMin ; x <= nMax ; ++x )
    {
        nMulty = 1;
        nRivision = x;

        while( nRivision > 0 )
        {
            nMulty *= nRivision % 10;

            nRivision /= 10;
        }

        nSum += nMulty;
    }

    return nSum;
}

int main()
{
    cout << Sum( 10, 1000 );

    return 0;
}

2017/02/09 15:10

정 훈희

    static int sum = 0;
    static int start = 10;
    static int end = 1000;

    public static void main(String[] args) {

        for (int i = start; i <= end; i++) {
            sum += numberSplitMutiple(i);
        }

        System.out.println("sum = " + sum);
    }

    private static int numberSplitMutiple(int number) {

        int r = number % 10;
        if (r == 0 || number >= 10) {
            r *= numberSplitMutiple(number / 10);
        }

        return r;
    }

sum = 93150

2017/02/09 22:14

김경수

def prod(n):
    result=[]
    while n>0:
        result+=[n%10]
        n=n//10
    re=1
    for i in result:
        re*=re*i
    return re
def summ(a,b):
    print(sum(prod(y) for y in range(a,b+1) ))
summ(10,1000)

2017/02/13 19:15

김구경

def multsum(number):
    Sum = 0
    for i in range(10,number+1):
        X = 1
        for j in str(i):
            X = X*int(j)
        Sum += X
    return Sum

2017/02/13 22:06

임재석

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.IntStream;

public class FromTo {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        ArrayList<Integer> numbers = new ArrayList<>();
        IntStream.range(sc.nextInt(), sc.nextInt()+1).forEach(
                i -> numbers.add(Arrays.asList(String.valueOf(i).split("")).stream().map(j -> (Integer.valueOf(j))).reduce(1, (a, b) -> a * b)));
        System.out.println(numbers.stream().mapToInt(Number::intValue).sum());
    }
}

2017/02/15 03:23

genius.choi

/*

dev : peanutBro
date : 170216
content : 10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기

*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(void)
{
    int addNumber = 0;

    for (int i = 10; i < 1000; i++)
    {
        int multiplyNumber = 1;
        char* numberString = new char[4];
        _itoa(i, numberString, 10);
        for (int j = 0; j < strlen(numberString); j++)
        {
            multiplyNumber *= (numberString[j]-'0');
        }
        addNumber += multiplyNumber;
    }
    cout << addNumber << endl;
}

2017/02/16 15:02

강병구 (peanutBro)

total = 0
mid_total = 1

for number in range(10,1001):
    num_str = str(number)
    for num in num_str:
        mid_total *= int(num)
    total += mid_total
    mid_total = 1

print(total)

2017/02/17 00:32

Scott.Jun

import operator, functools
n = 15
sum = 0
for i in range(10, n + 1):
    sum += functools.reduce(operator.mul, (int(j) for j in str(i)), 1)
print sum

2017/02/19 15:24

jackson

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char buffer[5] = "";
    int sum = 0;

    for (int i = 10; i <= 1000; i++) {
        _itoa_s(i, buffer, 10);
        int length = strlen(buffer);
        int temp = 1;
        for (int i = 0; i < length; i++) {
            temp *= buffer[i] - '0';
        }
        sum += temp;
    }

    cout << "sum : " << sum << endl;

    return 0;
}

c++로 풀었습니다

2017/02/21 16:32

Snow Chris

  • python 3.5.2

  • answer is 93150

answer=0
for i in range(10,1001) :
    part = 1
    for j in str(i) :
        part *= int(j)        
    answer += part

print(answer)

2017/02/23 11:31

강정민

var allSum = 0;

for(var i=10; i <= 1000; i++){
  var numSum = 1;
  var num = i;

  while(num > 0){
    numSum = numSum * (num % 10);
    num = parseInt(num / 10);
  }
  allSum += numSum;
}
console.log(allSum)

2017/02/25 22:55

Sehun

mult = []

for x in range(10, 1001):

result = 1

for y in str(x):
    result *= int(y)
    mult.append(result)

print sum(mult)

2017/02/26 18:11

李愼言(이신언)

ans = 0
for i in range(10,1000):
  j = i
  tmpans = 1
  while (j!=0):
    tmp = j % 10
    j /= 10
    tmpans *= tmp
  ans += tmpans

print(ans)

2017/02/27 12:25

최 규민

sum_total = 0
for i in range(10,1001):
    total = 1
    for j in str(i):
        total *= int(j)
    sum_total += total

print(sum_total)

와.. eval 과 join 은 정말... 멋있네요 보통의 코드 하나 더 올립니다.

2017/02/28 19:04

최해준

```{.python}

코딩 도장 10-1000까지 각 숫자 분해하여 곱하기의 전체합

result = 0 for i in range(10, 1001): m = 1 for j in str(i): m = m * int(j) result+=m

print(result) '''

2017/03/02 10:07

까리

파이썬 3.5.3으로 작성하였습니다.

sum = 1
result = 0

for x in range(10,1001):
    for y in str(x):
        sum *= int(y)

    result += sum
    sum = 1

print(result)

2017/03/04 17:49

JH

public void go() {

int [] num = {1,1,1,1};
int sum=0;

for(int i=10 ; i<=1000 ; i++) {
    num[0]= (i%10);
    num[1]= (i%1000%100/10);
    if(i>=100)   num[2]= (i%1000/100);
    if(i==1000)  num[3]= (i/1000);

sum = sum + (num[0]*num[1]*num[2]*num[3]);
}
System.out.print(sum);
}

2017/03/07 19:35

강민수

#include <stdio.h>

int digitmul(int num)
{
    int result = 1;
    while(num != 0)
    {
        result *= num % 10;
        num /= 10;
    }
    return result;
}

int main(void)
{
    int i;
    int sum = 0;
    for (i=10; i<1001; i++)
    {
        sum += digitmul(i);
    }
    printf("%d\n", sum);
    return 0;
}

2017/03/18 12:00

Lee Jungkeun

파이썬 3.6.0으로 풀었습니다.

b = 0
for i in range(10, 17):
    a = 1
    for j in str(i):
        a = a * int(j)
    b += a
print(b)

2017/03/20 13:26

doolki

sum=0
for n in range(10,1001):
    part=1
    for i in str(n):
        part*=int(i)
    sum+=part
print(sum)

2017/03/22 21:06

TV 프론트

sum=0
for n in range(10,1001):
    part=1
    for i in str(n):
        part*=int(i)
    sum+=part
print(sum)

2017/03/22 21:06

TV 프론트

include

include

using namespace std;

using namespace std;

int main() { int numsector, numsum = 0;

for (int i = 10; i < 1000; i++)
{
    numsector = 1;
    for (int ws = i;;)
    {
        numsector *= ws % 10;
        if (ws < 10) break;
        ws /= 10;
    }
    numsum += numsector;
}

cout << numsum << endl;

}

2017/03/25 13:24

PARK JINHOH

Python 3.6.0 입니다. 93150 나오네요.

sum=0
for n in range(10,1000+1):
    str_n=str(n)
    mul=1
    for p in range(0,len(str_n)):
        mul*=int(str_n[p])
    sum+=mul
print(sum)

2017/03/27 08:07

c0din9

#include <stdio.h>


void main() {


    int i, temp, min=10, max=1000, sum=0, gob;

    for (i = min; i <= max; i++) {
        temp = i;
        gob = 1;
        while (temp) {
            gob *= temp % 10;
            temp /= 10;
        }
        sum += gob;
    }

    printf("총 합 : %d\n", sum);


}

2017/03/28 16:39

dvv lee

package codingdojang;

public class numberDeviceAndM {
    public static void main(String args[]){
        int sum=0;

        for(int i=10;i<=1000;i++){
            int result=i,mul=1;
            for(;result>0;){
                mul*=result%10;
                result/=10;
            }
            sum+=mul;
        //  System.out.println(mul);
        }

    System.out.println(sum);
    }
}

2017/03/28 17:40

김재인

'''level 1
10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기'''

from functools import reduce


def helper(num):
    mul = lambda x, y: x * y

    return reduce(mul, map(int, str(num)))


def main(pre, post):

    return sum(map(helper, range(pre, post+1)))


if __name__ == '__main__':
    pre, post = 10 ,1001
    res = main(pre, post)
    print(res)

2017/03/30 09:07

jkkim

package training;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;

public class SplitSum {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.print("Please insert FIRST Number? ");
        int iNum1 = sc.nextInt();
        System.out.print("Please insert SECOND Number? ");
        int iNum2 = sc.nextInt();

        int iSum = 0;
        for(int i=iNum1; i<=iNum2; i++){
            iSum =+ spritNum(i);
        }        
        System.out.println("'"+iNum1+"' ~ '" + iNum2 + "' ==> " + iSum);
    }

    public static int spritNum(int iNum) {
        String strNum = String.valueOf(iNum);
        int[] iArr = new int[strNum.length()];
        int iRtn = 1;
        for(int i=0;i<strNum.length();i++){
            iArr[i] = Integer.parseInt(strNum.substring(i,  i+1));
        }
        for(int i=0;i<iArr.length;i++){
            iRtn = iRtn * iArr[i];
        }
        return iRtn;
    }
}

2017/03/31 14:55

acedo

def mul(x):
    t=1
    for i in range(len(str(x))):
        t = t * int(str(x)[i])
    return t

total=0
for i in range(10,1001):
    m=mul(i)
    total=total+m
print(total)

2017/04/02 16:51

laywonder

Python 3.5.1

result = 0
for x in range(10, 1001):
    mul = 1
    for y in str(x):
        mul *= int(y)
    result += mul
print(result)

2017/04/03 22:16

Koh KT

def num_list(num):
    num_list1 = []
    num_list2 = []
    i = 9
    while i < num:
        i += 1
        if 10 <= i:
            a = str(i)
            num_list1.append(int(a[0])*int(a[1]))
        if 100 <= i:
            a = str(i)
            num_list1.append(int(a[0])*int(a[1])*int(a[2]))
        if 1000 <= i:
            a = str(i)
            num_list1.append(int(a[0])*int(a[1])*int(a[2])*int(a[3]))

    return print (sum(num_list1))

num_list(int(input("숫자를입력해주세요")))

파이썬초보가 파이썬3로 10부터 입력받은숫자까지 구하는걸로 만들어봤습니다. 한두줄에 작성하시는 고수님들보면..존경스럽네요

2017/04/05 14:40

김도헌

int sum = 0;
        for(int i=10; i<=1000; i++){
            int mul = 1;
            for(char c : String.valueOf(i).toCharArray()){
                mul = mul * (c - '0');
            }

            sum = sum + mul;
        }

        System.out.println(sum);

2017/04/05 18:56

yh

total = 0

for i in range(10, 1001):
    if i<100:
        total += (i//10) * (i%10)
    elif i>100 and i<1000:
        total += (i//100) * ((i%100)//10) * (i%10)
    else:
        total += (i//1000) * ((i%1000)//100) * ((i%100)//10) * (i%10)

print(total)

나눗셈 후 소수점 아랫자리를 버리는 //연산자와 나머지를 반환하는 %연산자를 활용했습니다. 정답은 93150입니다.

2017/04/06 00:09

simkyohoon

a=0
b=0
c=0
for x in range(10,1001):
    if x <= 100:
        y = (x//10)*(x%10)
        a+=y
    if x >= 100 and x<1000:
        y = (x//100)*((x%100-x%10)//10)*(x%10)
        b+=y
    else:
        y = (x//1000)*((x%1000-x%100-x%10)//100)*((x%100-x%10)//10)*(x%10)
        c+=y
    y=a+b+c
print(y)

2017/04/06 19:19

장광성

c언어로 해보았습니다.```{.cpp}

define _CRT_SECURE_NO_WARNINGS

include

void main() { int num = 10; int cut = 0, cut_2 = 0; int remain = 0, remain_2 = 0; int res = 0; int mul = 0;

for (num = 10; num <= 1000; num++)
{
    if (num >= 10 && num <= 99)
    {
        cut = num / 10;
        remain = num % 10;
        res += cut * remain;
    }

    if (num >= 100 && num <= 999)
    {
        cut = num / 100;
        remain = num % 100;
        cut_2 = remain / 10;
        remain_2 = remain % 10;
        res += cut * cut_2 * remain_2;
    }
}
printf("모든 곱의 합은: %d\n", res);

} ```

2017/04/07 19:35

OneTop

#3.py

def prod(a,b):
    result = []
    for nums in range(a,b+1):
        xs = 1
        for x in list(str(nums)) : xs *= int(x)
        result.append(xs)

    return sum(result)

print(prod(10,15))

2017/04/07 23:59

Park Jay

result = 1
total = 0
for number in range(10,1001):
    for n in str(number):
        result = result*int(n)
    total += result
    result = 1

print(total)

2017/04/09 15:25

Hyung-Woo Ryoo

#include <stdio.h>                                                                 
#include <string.h>                                                                

int main(void)                                                                     
{                                                                                  
        int i;                                                                     
        int j;                                                                     

        int len;                                                                   
        int temp;                                                                  
        int sum = 0;                                                               

        char str[8] = {0, };                                                       

        for (i = 10; i <= 1000; i++)                                               
        {                                                                          
                snprintf(str, sizeof(str), "%d", i);                               
                len = strlen(str);                                                 

                temp = 1;                                                          
                for (j = 0; j < len; j++)                                          
                        temp *= (str[j] - '0');                                    

                sum += temp;                                                       
        }                                                                          

        printf("%d\n", sum);                                                       

        return 0;                                                                  
}

c언어로 구현 했습니다. char배열로 처리 해서 자릿수별로 곱한 후 sum에 더해주는 방식으로 풀었어요~

2017/04/09 18:38

by코딩요정

python 3.4.2 수의 곱을 구하는 것을 함수로

def mul_fn(n):
    mul = 1
    for i in str(n):
        num = int(i)
        mul *= num
    return mul

sum = 0
for x in range(10,1001):
    sum += mul_fn(x)

print(sum)

결과는 pi@raspberrypi:~/example $ python3 sum_mul_num.py 93150

2017/04/11 01:26

예강효빠

eval 함수를 사용하면 eval('*'.join(str(n))) 으로 하면 됨. sum 함수를 사용하면 sum( 위의 함수식 for n in range(10,1001)) 으로 하면됨 따라서 print(sum( 위함수식 for n in range(10,1001))) 이면 됨 - 예강효빠, 2017/04/11 01:32
#include    <iostream>
#include    <string.h>

using namespace std;

int main( int argc , char** argv )
{
    char    temp[ 24 ];
    int start = 10;
    int end = 1000;

    int result  = 0;
    for( int i = start ; i <= end ; ++i )
    {
        int mul = 1;
        snprintf( temp , sizeof( temp ) , "%d" , i );
        for( size_t j = 0 ; j < strlen( temp ) ; ++j )
        {
            mul *= ( temp[ j ] - 48 );
        }
        result  += mul;
    }
    cout << result << endl;
}

2017/04/16 16:20

오승석

# 1. for와 n in range(1, N+1)을 이용해서 하나씩 숫자를 늘려간다.
#
# 2.1 n을 각각의 숫자로 분해한다.  list(str)하면 string을 각자의 character로 분리한다.
# 2.2 각각의 character를 integer 형으로 변환한 다음 곱한다.
#     map 함수를 쓰면 편하게 할 수 있다.
#     list(map(int, character_list)) <- 이러면 character_list에 포함된 각각의 element에
#     int()를 적용하고 그 결과를 새로운 list로 리턴한다.
# 2.3 최종 결과에 2.2의 결과로 나온 list를 곱하여 누적하면 된다.


N = 1000

result_total = 0

for n in range(10, N+1):
    char_list = list(str(n))                        # 2.1
    int_list = list(map(int, char_list))            # 2.2
    result_multiplication = 1                       # 2.3 시작
    for i in range(0, len(int_list)):
        result_multiplication = result_multiplication * int_list[i]
    result_total = result_total + result_multiplication # 2.3 끝

print(result_total)

결과값 : 93150

2017/04/16 20:48

J. J. Yang

mul=1
list=[]
for i in range(10,1001):
    for a in str(i):
        mul=mul*int(a)
    if mul==0:
        mul=1
    elif mul!=0:
        list.append(mul)
        mul=1

print(sum(list))

2017/04/18 13:11

조현

문제가 10 ~ 1000 까지의 각 자리 수를 분해한 숫자 간의 곱하기 전체 합입니다만, X(최솟 값)에서 Y(최대 값)까지의 임의의 숫자를 받고 정답을 출력하는 코드를 만들어 봤습니다. 저도 워낙 힘들 게 만들었던 터라.. 정리되지 못한 점이 많지만 참고하실 분들은 참조하시기 바랍니다.


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int minNum;
        int maxNum;
        boolean runner = true;
        int leftNum;
        int countNum = 0;
        int[] divideNum = new int[10000000];
        int sumDivide = 1;
        int sumValue = 0;

        System.out.print("최소 값(10 이상) > ");
        minNum = scanner.nextInt();
        if(minNum < 10) {
            System.out.println("최소 값은 '10' 이상의 자연수여야 합니다.");
            return;
        } 
        System.out.print("최대 값 > ");
        maxNum = scanner.nextInt();
        if(minNum >= maxNum) {
            System.out.println("최소 값이 최대 값 보다 크거나 같을 수 없습니다.");
            return;
        }
        System.out.println("[ 최소 값에서 최대 값까지 각 숫자 자리 수를 분해한 각 숫자 간의 곱하기의 전체 합 ]");

        for(int start = minNum; start < maxNum; start++) {
            leftNum = start;
            countNum = 0;
            sumDivide = 1;
            while(runner) {
                if(leftNum >= 10) {
                    divideNum[(countNum+=1)] = leftNum % 10;
                    leftNum /= 10;
                } else {
                    divideNum[(countNum+=1)] = leftNum;
                    break;
                }
            }

            for(int b = 1; b <= countNum; b++) {
                sumDivide *= divideNum[(b)];
            }
            sumValue += sumDivide;
        }

        System.out.println(minNum +" ~ " +maxNum +"까지의 합 > " +sumValue);
    }

2017/04/20 03:08

SungWook Jung

num=int(input("num:"))
total=0
for i in range(10,num+1):
    if 10<=i<100:
        total+=(i//10)*(i%10)
    elif 100<=i<1000:
        total+=(i//100)*((i%100)//10)*((i%100)%10)
    elif i==1000:
        total+=1
print(total)

2017/04/21 15:04

빅디펜스

import java.util.*;

public class DiviByNum{
    public static void main(String[] args){
        long result = 0;
        for(long i=10;i<=1000;i++){
            String S=""+i;
            result+=divisum(S);
        }
        System.out.println(result);
    }
    public static long divisum(String S){
        int numlength=S.length();
        long result=1;
        for(int i=0;i<numlength;i++){
            result*=Character.getNumericValue(S.charAt(i));
        }
        return result;
    }
}

2017/05/01 23:58

CHIJE PARK

sum = 0
for i in range(10,1001):
    product = 1
    for j in str(i):
        product = product * int(j)
    sum += product    

2017/05/02 12:12

고든

#include<stdio.h>

int main() {
    int number[] = { 0,0,0,1 };
    int k, i, j, q, sum = 0, mul;
    for (i = 0; i < 1000; i++) {
        for (q = 0; q < 4; q++) {
            if (number[q] > 0) {
                break;
            }
        }
        mul = 1;
        for (j = 3; j >= q; j--) {
            mul *= number[j];
        }
        sum += mul;
        number[3]++;
        for (k = 3; k > 0; k--) {
            if (number[k] == 10) {
                number[k - 1]++;
                number[k] = 0;
            }
            else {
                break;
            }
        }
    }
    printf("%d", sum);
    return 0;
}

2017/05/02 15:06

흐니

sum=0 for n in range(10,1001): part=1 for i in str(n): part*=int(i) sum+=part print(sum)

2017/05/04 18:45

sadjbw

sum=0 for n in range(10,1001): part=1 for i in str(n): part*=int(i) sum+=part print(sum)

2017/05/04 18:46

sadjbw

# set digits
x = 10
y = 1000


#define each number's product(gets 'int' as input)
def product(n):

    product = 1

    for a in str(n):
        product = product * int(a)

    return product

#get answer

sum = 0

for digit in range(x,y+1):

    sum = sum + product(digit)

print (sum)

2017/05/06 01:11

정의석


public class practice {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int y = sc.nextInt();
        int[] p= new int[4];
        int result1= 0;

        for(;x<=y; x++){
            int result = 1;
            int j=0;
            for(int i=x ; i>0; i=i/10, j++){
                p[j] =  i%10;
            }
            for(int i=0; i<j-1; i++){
                result *= p[i]; 
            }
            result1 +=result;
        }
        System.out.println(result1);
    }
}

2017/05/06 09:31

dnjs7292

파이썬으로 풀어보았습니다```{.python}

sum=0 temp=0

for i in range(10,1001): word = str(i) for j in range(len(word)): if j==0: temp=int(word[j]) else : temp=temp*int(word[j]) sum=sum+temp print("sum : %d\n" %sum)

```

2017/05/06 22:24

민석인

# coding = utf-8

i = 10
sum = 0

while i <= 1000 :
    x = 1
    i_str = str(i)

    for j in i_str :
        i_int = int(j)
        x = x * i_int

    i += 1
    sum += x
print(sum)

2017/05/07 22:34

최준호

num=int(input("숫자를 입력하시요: "))
list_num=list()
total=0
if 10<=num<100:
    for i in range(10,num+1):
        list_num=list(str(i))
        total+=int(list_num[0])*int(list_num[1])
if 100<=num<1000:
    for x in range(10,100):
        list_num=list(str(x))
        total+=int(list_num[0])*int(list_num[1])
    for i in range(100,num+1):
        list_num=list(str(i))
        total+=int(list_num[0])*int(list_num[1])*int(list_num[2])
if num==1000:
    for x in range(10,100):
        list_num=list(str(x))
        total+=int(list_num[0])*int(list_num[1])
    for i in range(100,num+1):
        list_num=list(str(i))
        total+=int(list_num[0])*int(list_num[1])*int(list_num[2])
        total+=0
print(total)

2017/05/09 22:34

빅디펜스

JAVA로 풀었습니다.

public class test {
    public static void main(String[] args) {
        String st;
        int result=1, sum=0;

        for(int i=10; i<=1000; i++){
            st=String.valueOf(i);
            result = 1;

            for(int j=0; j<st.length(); j++){
                result *=(int)st.charAt(j)-48;
            }
            sum += result;
        }
        System.out.println(sum);
    }
}

2017/05/10 16:46

Dangerous Escape

(C언어로 작성)

#include <stdio.h>
void main()
{
    int i, digit1, digit2, digit3, multi, totalSum=0;

    for (i = 10; i <= 99; i++)
    {
        digit2 = i / 10;
        digit1 = i - (digit2 * 10);
        multi = digit1*digit2;
        totalSum += multi;
    }
    for (i = 100; i <= 999; i++)
    {
        digit3 = i / 100;
        digit2 = (i - (digit3 * 100)) / 10;
        digit1 = i - (digit3 * 100) - (digit2 * 10);
        multi = digit1*digit2*digit3;
        totalSum += multi;
    }
    printf("전체 합 : %d\n", totalSum);
}

2017/05/13 16:39

강동주

def check(startIdx, endIdx):
    value = 0

    for i in range(startIdx, endIdx + 1):
        multiple = 1
        for j in str(i):
            multiple *= int(j)

        value += multiple

    return value

startIdx = 10
endIdx = 1000
result = check(startIdx, endIdx)

print(result)

2017/05/15 16:26

김동민

sum = 0

for a in range(10,1001):
    b = list (str(a))
    c = 1
    #print (b)
    for i in range(1,len(b)+1):
        c = c * int(b[i-1])
        #print (c)
    sum = sum + c
print ("10~1000까지 각 숫자 분해하여 곱하기 : %d" %sum)

2017/05/16 18:11

Bo Hyun Seo

sum = 0
for i in range(10, 1001):
    product = 1
    for j in str(i):
        product *= int(j)
    sum += product
print(sum)

2017/05/22 01:15

겨털에뽀뽀

sum = 0
for i in range(10,1001):
    multiple = 1
    for j in range(len(str(i))):
       multiple *= int(str(i)[j])
    sum += multiple
print(sum)

2017/05/26 23:47

S ReolSt

package 연습; import java.util.Scanner; //10부터 1000까지 public class insubunhae {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc = new  Scanner(System.in);
    int num;
    int save[] = new int[4];
    System.out.print("정수 입력 >>");
    num =sc.nextInt();
    if(num<=99){
    save[0]=num%10;
    save[1]=(num-save[0])/10;
    save[2]=save[1]*save[0];
    System.out.printf("%d =%d * %d = %d",num,save[1],save[0],save[2]);
    }
    else if(num<=999){
        save[0]=num%10;
        save[1]=(num-save[0]-((num/100)*100))/10;
        save[2]=num/100;
        save[3]=save[0]*save[1]*save[2];
        System.out.printf("%d =%d * %d * %d = %d",num,save[2],save[1],save[0],save[3]); 
    }
}

}

2017/05/27 02:00

김기문

C언어로 작성했습니다.

#include<stdio.h>
int main(){
    int min, max, gop = 1, hap = 0, count, backup; //gop은 곱셈의 항등원인 1로 초기화 해줬습니다.
    printf("낮은값을 입력하세요 : ");
    scanf("%d", &min);
    printf("높은값을 입력하세요 : ");
    scanf("%d", &max);  //10~1000으로 주어졌지만 다른 수도 가능하게 입력 받도록 하였습니다. 한자리수도 됩니다.
    count = min;
    backup = min;
    while (count <= max)
// for(backup=min; backup<=max; backup++)을 사용하니 continue때마다 증감식(backup++) 작동돼서 while문 사용
    {
        gop *= count % 10;     //끝자리수 곱하기
        if (count >= 10){      //10이상이면 
            count /= 10;   //끝자리 삭제과정 (예 : 325 -> 1*5 하였으므로  5삭제후 32만듬) 
            continue;      // 끝자리수 곱하기로 돌아가기
        }
        hap += gop;            //곱한수 더하기
        gop = 1;               //항등원으로 초기화
        backup++;              
        count = backup;        //첫자리만 남았으므로 복원해줍니다.
    }
    printf("각 숫자 분해하여 곱한값의 총합 : %d", hap);
}

2017/05/27 13:10

김우주

c로 풀이.

#include <stdio.h>
int main(void)
{
    int i,j,multi,sum=0;
    for(i=10;i<=1000;i++)
    {
        multi=1;
        for(j=1;j<=1000;j*=10) if(i>=j) multi*=((i/j)%10);
        sum+=multi;
    }
    printf("%d",sum);
    return 0;
}

2017/05/31 16:23

박동준

#include <iostream>

using namespace std;

int main() {
    int i,sum = 0;
    for (int i = 10; i < 1001; i++) {
        if (i > 999) {
            sum += (i / 1000) * ((i % 1000) / 100) * ((i % 100) / 10) * (i % 10);
        }
        else if (i > 99 && i < 1000) {
            sum += (i / 100) * ((i % 100) / 10) * (i % 10);
        }
        else if (i > 9 && i < 100) {
            sum += (i / 10) * (i % 10);
        }
    }
    cout << sum << endl;
}

결과 : 93150

2017/06/02 13:33

조상현

    public static void main(String[] args) {

        int value1= 0;
        int sum1=0;
        int value2= 0;
        int sum2=0;

        for(int i =10 ; i<100 ; i++){
            value1 = (i%10) * ((i/10)%10);
            sum1 +=value1;
        }

        for(int i =10 ; i<1000 ; i++){
            value2 = (i%10) * ((i/10)%10)* (i/100);
            sum2 +=value2;
        }
        System.out.println(sum1 + sum2 );

    }

정답은 93150

2017/06/11 19:54

kihyun lee

let su = 1;
let temp = 1;
let sum = 0;

let hab = (first,end) => {
    for(first; first <= end; first++){
        do{
            su*=10;
            var num = (((first%su)+'').charAt(0))*1;
            temp *= num; 
        }while(first >= su);
        su = 1;
        sum = sum + temp;
        temp = 1;
    }
    return sum;
}
//             처음,끝
console.log(hab(10,15));

2017/06/12 00:20

redshark

// 분해 후 곱하기 - C
#include <stdio.h>

int main(void)
{
    int i, sum = 0;
    for (i = 10; i <= 1000; i++)
    {
        if (i >= 100)
            sum += (i / 100) * (i / 10 % 10) * (i % 10);
        else
            sum += (i / 10) * (i % 10);
    }
    printf("%d\n", sum);
    // 답은 93150
}

2017/06/13 08:29

Jeong Hoon Lee

sum=0
for i in range(10, 1001):
    mul = 1
    for y in str(i):
        mul = mul * int(y)
    sum = sum + mul
print(sum)

2017/06/16 15:25

Hyunmin Park

javascript

var multisum = function (from, to) {
    return Array.from(Array(to), (v, i) => i + 1).slice(from)
                .map(v => ("" + v).split("").reduce((a, b) => a * b))
                .reduce((a, b) => parseInt(a) + parseInt(b));
};

console.log(multisum(10, 15));   //->15
console.log(multisum(10, 1000)); //->93150

좀더 줄여보았습니다.

var multisum2 = (f, t) => Array.from(Array(t-f+1),(_,i)=>i+f)
                               .reduce((a,b)=>[...`${b}`].reduce((c,d)=>c*d,1)+a,0);

console.log(multisum2(10, 15));   //->15
console.log(multisum2(10, 1000)); //->93150

2017/06/21 10:14

funnystyle

a = list(range(10, 1000))
sum = 0 

for i in range(0, len(a)):
    if len(str(a[i])) ==2: 
        sum += int(str(a[i])[0])*int(str(a[i])[1])
    elif len(str(a[i])) ==3:
        sum += int(str(a[i])[0])*int(str(a[i])[1])*int(str(a[i])[2])
    elif len(str(a[i])) ==4:
        sum +=int(str(a[i])[0])*int(str(a[i])[1])*int(str(a[i])[2])*int(str(a[i])[3])

print(sum)

2017/06/26 19:53

권용규

# 숫자 각 digit 곱
def multi_digit(num):
    str_num = str(num)
    result = 1
    for chr in str_num:
        result = result * int(chr)
    return result

# a ~ b 범위에 숫자 각 digit 곱의 합
def sum_multi_digit_result(a, b):
    sum = 0
    for i in range(a, b + 1):
        sum += multi_digit(i)
    return sum

print(sum_multi_digit_result(10, 1000)

2017/06/30 19:10

이정환

import java.util.Scanner;

public class dissolve
{
  public static void main(String[] args)
  {
    //편의를 위해 입력 제한 256개
    int[] inputs = new int[256];
    Scanner input = new Scanner(System.in);
    int length = 0; //총 입력 수 기억하기 위한 변수
    int number = 10; //while문이 반드시 실행하기 위해 10으로 초기화
    int result = 0; //최종적으로 값을 저장하는 변수

    System.out.print("숫자를 입력, 입력을 끝내려면 0~9까지의 숫자를 입력(최대 256개) : ");
    while(number > 9) // 10 이상의 수가 입력되었을 경우
    {
      number = input.nextInt();//입력한 정수를 받음
      if(number < 10)//10보다 작을 경우
      {
        System.out.println("입력을 종료.");
        break;
      }
      inputs[length] = number;//배열에 입력을 저장함
      length++;//배열 위치 한칸 옮김
    }

    System.out.println("입력했던 숫자들을 나열.");

    //제대로 입력되었는지 확인하기 위한 출력
    for(int i = 0; i < length; i++)
    {
      int n = inputs[i];
      System.out.println(n);
    }
    System.out.println();

    for(int i = 0; i < length; i++)
    {
      int temp;//배열 내부 값 저장 변수
      int tempTwo = 1;//각 자리값을 저장하는 변수
      int n = 1;//10의 몇 제곱인지 나타내기 위한 변수이며, 나머지를 봐야하므로 1부터 시작

      temp = inputs[i];
      while(temp > 0)//temp값은 매 반복마다 줄어들게 됨.
      {
        int powed = (int)Math.pow(10,n);
        tempTwo = tempTwo * (temp % powed);//매 나머지 값을 곱함
        temp = temp / powed;//temp 값 수정
        n++;//제곱값 증가
      }

      result += tempTwo; //최종 결과를 합산
    }

    System.out.println(result); //출력

  }
}

2017/07/01 12:57

신종혁

def divmul(num):
    mul = 1
    for digit in str(num):
        mul *= int(digit)
    return mul

p = map(divmul, range(10,1001))
print(sum(p))

2017/07/03 11:12

Noname

Python으로 풀었습니다. 좀 아쉽네요;;

def solve(start, end):
    def multiple_of_digit(num):
        val = 1
        while val != 0 and num > 0:
            val *= num % 10
            num = int(num / 10)
        return val

    total = 0
    for i in range(start, end + 1):
        total += multiple_of_digit(i)
    return total


print(solve(10, 1000))

2017/07/03 12:42

SOUP

import java.util.Arrays;

public class Test {

    public static void main(String[] args){

        String arr[] = new String[90];
        String a[] = null;
        int hap=0;
        Arrays.setAll(arr, (i) -> (i++)+10+"");

        for (String ar : arr) {
            a=ar.split("");
            hap+=Integer.parseInt(a[0])*Integer.parseInt(a[1]);
        }

        System.out.println(hap);

    }
}

2017/07/03 13:20

반현호

public class Ex007 {
    static int sumOfmpx = 0;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for(int i=10; i<=1000; i++) {
            int mpx = 1;
            for(int temp = i; temp > 0; temp/=10)
                mpx *= temp%10;
            sumOfmpx += mpx;
        }
        System.out.println("합: " + sumOfmpx);
    }

}

합: 93150

2017/07/04 13:48

pg

private static final int BEGIN = 10;
    private static final int END = 15;


    public static void main(String[] args) {
        int result = 0;
        for ( int i = BEGIN; i <= END; i++ ){
            result += sum(i);
        }
        System.out.println(result);
    }

    public static int sum (int num){
        int sum = 1;
        for ( char c : Integer.toString( num ).toCharArray() ){
            sum *= c - 48;
        }
        return sum;
    }

2017/07/07 10:51

요지

sum=0 for i in range(10,1001): mul = 1 for k in str(i): for j in range(0,len(k)): mul*=int(k[j]) sum+=mul print(sum)


2017/07/14 15:18

김도현


public class Decomposition {
    public static void main(String [] args) {

        int num, tmp1, tmp2, tmp3,tmp, hap=0;

        for(num =10 ; num<=1000 ; num++ ) {

            if(num <100) {
                tmp1 = num / 10; 
                tmp2 = num % 10;
                hap = hap + (tmp1*tmp2);

            }
            else if (num<1000) {
                tmp1 = num / 100;
                tmp = num % 100;
                tmp2 = tmp / 10;
                tmp3 = tmp % 10;
                        hap = hap +(tmp1*tmp2*tmp3);                
            }



        }
        System.out.println("10~ 1000까지 숫자를 분해하여 곱한 전체합은? : "+hap);

    }

}

2017/07/17 11:26

Giyeon Kim

package java_tutorial;

public class CountSum {

    public static void main(String[] args) {

        int sum = 0;

        for(int i = 10; i < 1001; i++)
        {
                if (i/100==0)
                {
                    sum += ((i%10) * (i/10));
                }
                else if (i/1000==0)
                {
                    sum += ((i%10) * ((i/10)%10) * (i/100));
                }
                else if(i/10000==0)
                {
                    sum += ((i%10) * ((i/10)%10) * ((i/100)%10) * (i/1000));
                }

        }

        System.out.println("숫자의 총 합은 " + sum + "입니다.");
    }

}

2017/07/17 12:36

최원석

파이썬3

시작한지 3일밖에 되지 안 돼서 많이 부족합니다

list = list(str(n) for n in range(10,1001))

r = 0
x = 0

while x < len(list):
    a = 1
    for y in range(0, len(list[x]) ):
        a *= int(list[x][y])
    r += a
    x += 1

print(r)

2017/07/19 17:42

이재희

import java.util.*;

public class MultiplySum {
    public static int sumMultiply(int n) {
        if(n/10 == 0) return n%10;
        return (n%10)*sumMultiply(n/10);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int start = sc.nextInt();   
        int end = sc.nextInt();     
        int sum = 0;

        for(int i=start;i<=end;i++) {
            sum+=sumMultiply(i);
        }

        System.out.println(sum);
    }
}

2017/07/29 13:35

곽철이

user_list=[]
st_n=int(input('start number input:'))
end_n=int(input('end number input:'))
debug=raw_input('if you want debug. pleas enter yes: ')
mul=1
sum=0
####### make user_list using user input ########
for i in range(0,end_n-st_n+1):
    user_list.append(i+st_n)
    user_list2=list('%d'%user_list[i])
    for j in range(0,len(user_list2)):
        mul=mul*int(user_list2[j])
        if debug=="yes":
            print('user_list[%d]=%d, user_list2[%d]=%d, mul=%d'%(i,user_list[i],j,int(user_list2[j]),mul))

    sum=sum+mul
    mul=1

print(sum)

2017/08/02 15:50

daehyun.jung

파이선 3.6.1

sum_result=0

for n in range(10,1001):
    mul_result=1
    for x in str(n):
        mul_result*=int(x)
    sum_result+=mul_result

print(sum_result)

2017/08/05 11:14

이자룡

C

#include <stdio.h>

main() {
    int remain, share;
    int i;
    int value;
    int sum = 0;

    for (i = 10; i<1001; i++) {
        share = i;
        value = 1;
        while (share>0) {
            remain = share % 10;
            share = share / 10;
            value = value*remain;
        }
        sum += value;
    }
    printf("%d\n", sum);

    system("pause");
}

2017/08/08 14:16

이자룡

C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int returnInteger(char input);
int main()
{
    char* tmp = (char*)malloc(sizeof(char)*4);
    int resulttmp=1;
    for(int i=10;i<=1000;i++)
    {
        sprintf(tmp,"%d",i);
        for(int j=0;j<strlen(tmp);j++)
        {
            resulttmp = resulttmp*returnInteger(tmp[j]);                
        }
        printf("%d : %d\n",i,resulttmp);
        resulttmp=1;
    }

    return 0;
}
int returnInteger(char input)
{
    return (int)input - 48;
}

2017/08/09 10:05

임꺽정


sum=0

for n in range(10,1001):
    num=str(n)
    temp = 1

    for j in range(len(num)):
        temp*=int(num[j])       # 각자리수 곱해서 temp에 담기

    sum+=temp                   # temp의 누계

print(sum)

2017/08/21 14:46

iamm00n

Swift4 입니다.

import Foundation

let x = (10...1000).map{ n in 
           let c = Int(log10(Double(n)))
           return (0...c).map{ n / Int(pow(10, Double($0))) % 10}.reduce(1, *)
}.reduce(0, +)
print(x)

2017/08/24 09:54

룰루랄라

result = 0
for n in range(10,1001):
    a = 1
    for x in str(n):
        a = a*int(x)
        print(a)
    result = result + a


print(result)

2017/08/24 11:05

ideall

import functools

def getSum(num1, num2):
    arr = map(str, range(num1,num2+1))
    result = 0
    for x in arr:
        x = map(int, list(x))
        x = functools.reduce(lambda x,y:x*y, x)
        result = result + x
    print(result)

getSum(10, 15)

2017/08/25 14:18

piko

JAVA

    public static void main(String[] args) {
        int result = 0;

        for(int i = 10; i <= 1000; i++){
            char[] cList = Integer.toString(i).toCharArray(); //1,0
            int len = cList.length; //2
            int multiple = 0;

            for(int j = 0; j < len; j++){
                if(j < 1) {
                    multiple = Integer.parseInt(String.valueOf(cList[j]));
                } else {
                    multiple *= Integer.parseInt(String.valueOf(cList[j]));
                }
            }

            result += multiple;
        }

        System.out.println(result);
    }

2017/08/28 15:14

androot

// golang 1.9
package main

import (
    "fmt"
    "strconv"
)

func main() {
    sum := 0
    for i := 10; i <= 1000; i++ {
        cnvStr := fmt.Sprintf("%d", i)
        calc := 1
        for j := 0; j < len(cnvStr); j++ { // 정수->문자에 대해 자리수별 곱
            cnvVal, _ := strconv.Atoi(cnvStr[j : j+1])
            calc *= cnvVal
        }
        sum += calc
    }
    // result
    fmt.Println(sum)
}

// ans: 93150

2017/08/29 09:57

mohenjo

public class Example106 {
    public static void main(String[] args) {

        int sum = 0;
        for (int i = 10; i <= 1000; i++) {
            int multiple = 1;

            for (char c : String.valueOf(i).toCharArray()) {
                multiple *= Character.getNumericValue(c);
            }

            sum += multiple;
        }

        System.out.println(sum);
    }
}

2017/08/30 12:51

흑돼지

# python 3.6
sum = 0
for i in range(10, 1001):
    mul = 1
    for c in str(i):
        mul *= int(c)
    sum += mul
print(sum)
# ans: 93150

2017/09/04 13:36

mohenjo


#include <stdio.h>

int main(void) {

    int start, end;

    // 10~1000사이 2개 숫자를 입력받는다. 
    printf("Please, input two numbers between 10 and 1000 :");
    scanf("%d %d", &start, &end);

    // 큰 수부터 입력받았을 경우, 순서교환 (예: 81 70 -> 70 81)
    if (end < start) {
        int temp = start;
    start = end;
    end = temp;
    } 

    int i;
    int digits_sum=0, total_sum=0; 
    int hundred, ten, one;

    // 각각의 수들을 100의 자리, 10의 자리, 1의 자리로 나눠서 저장
    for (i=start; i<=end; i++) {

    if (i<100) {
        hundred = 1; //dummy digit for muliply
        ten = i/10;
        one = i%10;
    }

    else if (i<1000) {
        hundred = i/100;
        int mod = i%100;
        ten = mod/10;
        one = i%10;
    } 

    // digits_sum은 각각의 자리값을 곱하고, total_sum은 곱한 값의 총
    digits_sum = hundred * ten * one;
        total_sum = total_sum + digits_sum;
    }
    printf("sum= %d\n",total_sum);
    return 0;
}

2017/09/14 15:23

홍장헌

파이썬을 공부한지 얼마 안되서 파이썬처럼 작성하는게 쉽지 않네요.

처음에는 제가 작성한 부분이고 여기 풀이에서 eval(), join()함수를 알고 추가 해 봤습니다.



def GetCrossNum(num) :
    sum = 1
    for n in range(len(num)) :
        sum = sum * int(num[n])         
    return sum

num = [GetCrossNum(str(n)) for n in range(10, 1001)]
print(sum(num))

num2 = [eval("*".join(str(n))) for n in range(10, 1001)]
print(sum(num2))

2017/09/15 10:18

김동환

public static void countGop(){
    int sum = 0;
    for(int i=10; i <=1000;i++){
        if(i<100) sum += (i/10)*(i%10);
        if(i>=100) sum += (i/100)*((i%100)/10)*((i%100)%10);
        if(i>=1000) sum+= (i/1000)*((i%1000)/100)*((i%1000)/10)*((i%1000)%10);
    }
    System.out.println("Result of Sum : "+sum); // 93150
}

2017/09/28 14:30

jake

python 2.7

sample = range(10, 1001)
numbs = 0

for i in range(len(sample)):
    multiples = 1
    for j in str(sample[i]):
        multiples *= int(j)
    numbs += multiples

print (numbs)

2017/11/21 12:30

vkospi

python

numbers = [str(i) for i in range(10, 1001)]
l = [list(number) for number in numbers]
mul_num = [int(a[0]) * int(a[1]) if len(a) == 2 else int(a[0]) * int(a[1]) * int(a[2]) for a in l]
print(sum(mul_num))

2017/11/24 00:32

이택성

f = 0
for i in range(10, 1001):
    e = i%10
    if i>10:
        e *= i/10%10
        if i>100:
           e *= i/100%10
    else:
        e = 0

    f += e

print f

2017/12/01 18:40

탐나

#include <stdio.h>
int main(void){
    int i = 0;
    int j = 0;
    int max = 1000;
    int sum = 0;
    int temp = 1;

    for(i=10;i<=max;i++){
        for(j=i;j>0;j=j/10){
            temp = temp * (j%10);
        }
        sum = sum + temp;
        temp = 1;
    }

    printf("총합은 <%d> \n", sum);
    return 0;   
}

2017/12/05 12:59

Sooho Kim

Common Lisp

(loop for n from 10 to 1000
      sum (apply #'* (map 'list (lambda (x) (digit-char-p x)) (prin1-to-string n))))
>93150

2017/12/08 13:11

리스프

result=0
for i in range(10, 1001):
    tmp=1
    for j in range(len(str(i))):
        tmp*=int(str(i)[j])
    result+=tmp

print(result)

2017/12/13 03:19

빗나감

print( sum(eval('*'.join(str(x))) for x in range(100 , 1001) ) )

2017/12/19 15:27

ekfrqkf

print(sum(eval('*'.join(str(i))) for i in range(10,1001)))

2017/12/30 12:30

김호현

파이썬 입니다.

sub=[]
mul=[]
for i in range(10,1001):
    n=0
    for j in range(len(str(i))): 
        if j==0:
            n=int(str(i)[j])
        else:
            n=n*int(str(i)[j])
    mul.append(n)
    result=0
    for o in mul:
        result=result+o
print(result)

2018/01/02 17:37

Ilhoon Kang

자바입니다...ㅎㅎ

    public static void main(String[] args)
    {
        multiple_add a = new multiple_add();
        int result = a.multipleAdd(10,15);
        System.out.println("총합: " + result );
    }

    public int multipleAdd(int min, int max)
    {
        String str = "";
        int sum = 0;
        int tmp = 1;

        for(int i = min; i< max+1; i++)
        {
            str = String.valueOf(i);
            for(int j = 0; j < str.length(); j++)
            {
                tmp *= ((int)str.charAt(j) - 48);
            }
            sum += tmp;
            tmp = 1;
        }
        return sum;
    }

2018/01/08 09:24

강승규

public class level_1_10_to_1000_apart_multiply {

public static void main(String[] args) {

    int sum = 0;

    for(int i = 10; i <= 1000; i++) // 10 부터 1000까지 돌림.
    {
        int eachmultiply = 1; // 각 자리 숫자를 곱할떄 쓸 임시 수. 곱할때 0이면 무조건 0 이 되므로 1로 설정.
        int n = i; // i 값을 n에 대입.
        while(n > 0)
        {
            eachmultiply = eachmultiply * (n % 10); // 각자리 수를 곱함.
            n = n / 10;
        }
        sum = sum + eachmultiply; // 각 자리 수 곱한것의 총 합.
    }
    System.out.println(sum);
}

}

2018/01/12 15:24

Byam_Gyu

r = 0
for i in range(10, 1001):
    a = str(i)
    if i < 100:
        r += int(a[0]) * int(a[1])
    elif i < 1000:
        r += int(a[0]) * int(a[1]) * int(a[2])
    else:
        r += int(a[0]) * int(a[1]) * int(a[2])
print(r)

2018/01/20 11:24

whmj

print(sum(eval('*'.join(str(i)))for i in range(10,1001)))

파이썬 3.6.3

2018/01/26 13:45

김도현

a = int(input("시작하는 수 : "))
b = int(input("마지막 수 : "))
def mulsum(n1, n2):
    result = 0
    c = list(range(n1, n2+1))
    for i in c:
        d = list(str(i))
        while(len(d)<4):
            d.append('1')
        e = list(map(int,d))
        result += e[0]*e[1]*e[2]*e[3]
    return result
print(mulsum(a, b))

2018/02/04 11:27

김동하

import java.util.*;

public class Main { public static void main(String[] args) { Scanner scanf=new Scanner(System.in); int sum=1; int total=0;

        for(int j=10; j<=15; j++) {
            String[] str=(j+"").split("");
        for(int i=0; i<str.length; i++) {
            sum=sum*Integer.parseInt(str[i]);
        }
            total=total+sum;
            sum=1;
    }
System.out.println(total);

}

}```{.java}

```

2018/02/07 16:20

즈스크

def msum(n):
    result=0
    for x in map(str,range(10**n,10**(n+1))):
        temp=int(x[0])
        for i in range(1,n+1):temp*=int(x[i])
        result+=temp
    return result
print(sum(map(msum,(1,2))))

2018/02/08 11:07

추천은 다 읽음

#include <stdio.h>

int main(){
    int n1, n2;
    int num, sum=0;
    int result=1;
    int k;
    scanf("%d %d",&n1,&n2);
    // 각 숫자 분해하여 곱
    for(k=n1; k<=n2; k++){
        num=k;  // k부터
        while(num!=0){  // 몫이 0이 아니면
            result*=num%10; // 자릿수 곱
            num/=10;    // 다음 자릿수
        }
        sum+=result;    // 곱한결과 합
        result=1;
    }
    printf("%d",sum);
}

2018/02/12 21:00

gudrhrehd123

def disassemble():
    n=input('till:')
    a=range(10,n+1)
    a=[str(x) for x in a]

    disect=[]
    multiples=[]

    for j in range(n+1-10):

        for i in (str(a[j])):

            disect.append(i)

            disect=[int(x) for x in disect]
        #print disect

        c=1
        for x in range(len(disect)):
            c=c*disect[x]

        multiples.append(c) 
        disect=[]

    #print multiples
    print sum(multiples)

answer=93150

2018/02/13 18:02

Da ne

ans_sum=0
for k in range(10,1001):
    str_k=str(k)
    temp_result=1
    for g in str_k:
        temp_result*=int(g)
    ans_sum+=temp_result

print(ans_sum)

2018/02/16 21:36

D B

public class numberAdd {

    int beginNumber = 10;
    int endNumber = 1000;
    int sum = 0;

    public void numberSum() {
        for(int i = beginNumber; i <= endNumber; i++) {
            String str = i + "";
            int oneSum = 1;
            for(int j = 0; j < str.length(); j++) {
                oneSum *= Integer.parseInt(str.charAt(j) + "");
            }
            sum += oneSum;
        }
    }

    public void display() {
        System.out.println(beginNumber + "부터 " + endNumber + "까지의 각 자릿수의 합은 :" + sum + "입니다.");
    }

}

2018/02/26 11:23

초초보

def prod(n):
    n = str(n)
    product = 1
    for i in n:
        product *= int(i)
    return product
def prod_sum(i,j):
    sum = 0
    for x in range(i,j+1):
        sum += prod(x)
    return sum
print(prod_sum(10,1000))

2018/02/26 15:59

맹재환

def total(a, b):
    result = 0
    for number in range(a, b+1):
        disass = 1
        for args in str(number):
            disass = disass * int(args)
        result = result + disass
    return result
print(total(10, 1000))

Python 3

2018/03/11 19:16

myyh2357

int MulEachNumbers(int start, int end)
{
    int i;
    int n, m, t;
    int ret = 0;

    for (i = start; i <= end; i++)
    {
        m = 1;
        t = i;
        while (1)
        {
            n = t % 10;

            if (t < 10)
            {
                break;
            }

            t /= 10;

            m *= n;
        }

        ret += m;
    }

    return ret;
}

int main()
{
    int i;
    int number;
    int start, end;

    printf("start : ");
    scanf_s("%d", &start);

    printf("end : ");
    scanf_s("%d", &end);

    printf("========================\n");
    number = MulEachNumbers(start, end);
    printf("ret : %d\n", number);

    return 0;
}

2018/03/13 22:07

이승훈

import java.util.Scanner;

public class Total{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int temp = 1;
        int toTal = 0;
        System.out.println("10~1000까지 숫자의 합은");

        for(int i = 10;i<=1000;i++){
            int input = i;

            int n = (Integer.toString(input)).length();
            int [] a = new int [n]; 

            for(int j = 0;j<n;j++){
                a[j] = input%10;
                input = (int)(input/10);
            }

            for(int k = 0;k<n;k++){
                temp=(temp*a[k]);
            }
            toTal += temp;
            temp = 1;
        }

        System.out.println("합은" + toTal + "입니다.");

    }
}

2018/03/17 17:18

배혜민

n,s = int(input("수를 입력하세요")),0
while n < 10: 
       n = int(input("다시 입력하세요"))
       continue
for x in range(10, n+1):
       l = list(str(x))
       if '0' not in l:
              c = 1
              for x in range(0, len(l)):
                     c *= int(l[x])
              s += c
print(s)

2018/03/18 18:12

김영성

sum = 0
for i in range(10,1001):
    a = list(str(i))
    a = '*'.join(a)
    sum+=eval(a)

print(sum)

2018/03/20 23:21

DEMIAN

s = 0
for i in range(10,1001):
    m = 1
    for j in range(0,len(str(i))):
        m *= int(str(i)[j])
    s += m

print(s)

2018/03/21 15:45

python

start = int(input())
end = int(input())

sum = 0
res = 1
for i in range(start, end+1):
    num = str(i)
    for j in num:
        res = res * int(j)
        #res = res * int(num[num.index(j)])
        #res = res * int(num[j])
        #print(num.index(j))
    sum += res
    res = 1
print(sum)




2018/03/26 17:25

bnewkk

def mul(a,b) :
    sum = 0
    for i in range(a,b+1) :
        result = 1
        for j in str(i) :
            result *= int(j)
        sum += result
    return sum

print(mul(10,1000))

2018/03/27 13:50

yijeong

Swift입니다.

import Foundation

var total = 0 
for number in 10...1000 {
    total += String(number).reduce(1, { return $0 * Int(String($1))!})
}
print(total)

2018/03/28 00:08

졸린하마

python 입니다. 가장 쉬운 방법이 아닐까 합니다^^;

total = 0
for n in range(10, 16):
    m = 1
    for t in str(n):
       m = m * int(t)

    total = total + m

print(total)

2018/04/02 14:21

무명소졸

다들 대단하시네요

파이썬

def getmult(num):
    num_list = [int(x) for x in str(num)]
    result = 1
    for i in num_list:
        result *= i
    return result

result = [getmult(i) for i in range(10,1001)]
print(sum(result))

2018/04/04 21:42

이진우

package codingDojang;

public class OneToTho {
    public int oTT() {
        int result = 0;
        // 10 ~ 1000까지 값을 갖는 배열 생성 후 문자열로 변경
        String[] array = new String[991];
        for(int i = 0; i <= 990; i++) {
            int temp = i + 10;
            array[i] = Integer.toString(temp);
        }

        for(int i = 0; i < array.length; i++) {
            String[] temp = array[i].split("");
            int tempMulti = 1;
            for(int j = 0; j < temp.length; j++) {
                if(temp[j].equals(0)) {
                    break;
                }
                tempMulti = tempMulti*Integer.parseInt(temp[j]);
            }
            result += tempMulti;
        }
        return result;
    }

    public static void main(String[] args) {
        OneToTho ot = new OneToTho();
        System.out.print(ot.oTT());

    }

}

2018/04/10 10:05

오준석

#include<iostream>
using namespace std;

int sum(int num)
{
    int remain = 0;
    int devide = 0;
    int result = 0;
    int sum = 0;
    int nano = 0;
    int tmp = 0;

    for (num; num <= 1000; num++)
    {
        if (num > 99)
        {
            nano = num / 100;
            tmp = num % 100;
            devide = tmp / 10;
            remain = tmp % 10;
            result = devide * remain * nano;
            sum += result;
        }
        else
        {
            devide = num / 10;
            remain = num % 10;
            result = devide * remain;
            sum += result;
        }
    }
    return sum;
}

int main()
{
    int num = 10;

    cout << sum(num) << endl;
}

2018/04/10 23:13

Jun ki Kim

java8

int i = IntStream.rangeClosed(10, 1000)
                .mapToObj((int operand) -> String.valueOf(operand).toCharArray())
                .map(chars -> {
                    int rs = 1;
                    for (char aChar : chars) {
                        rs *= Character.getNumericValue(aChar);
                    }
                    return rs;
                })
                .reduce((left, right) -> left + right)
                .orElse(0);

        System.out.println(i);

2018/04/13 18:58

무명소졸

public class hello {

    public static void main(String[] args) {
        int num = 0;
        int sum=0;
        int m;
        int n;
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                k = i * j;
                num += m;
                System.out.println(i + "*" + j + "=" + m);
            }
            System.out.println(num);
        }
        for (int i1 = 1; i1 < 10; i1++) {
            for (int j1 = 0; j1 < 10; j1++) {
                for (int i2 = 0; i2 < 10; i2++) {
                    k1 = i1 * j1*i2;
                    sum += n;
                    System.out.println(i1 + "*" + j1+"*" +i2+ "=" + n);
                }

            }
            System.out.println(sum);
        }
       System.out.println(num+sum);
    }

}

2018/04/16 12:40

聂金鹏

// 자바
    public static void main(String[] args) throws Exception {

        int sum = 0;
        for (int i=10; i<1000; i++) {
            int sum2 = 0;
            if(!(i+"").contains("0")) {
                sum2 = i%10;
                if (i>=10) 
                    sum2 *= i/10%10;
                if (i>=100)
                    sum2 *= i/100%10;
            }
            sum += sum2;
        }   
        System.out.println(sum);
    }

2018/05/06 23:37

정몽준

  let b =1;
  let sum = 0;
  for(let i = 1; i<1001; i++){
    let a = Array.from(String(i))
      for(let e = 0; e<a.length; e++){
      b = b*a[e];
    }
     sum +=b;
     b = 1;
     console.log(sum)
  }
10에서 1000까지가 아니라 1에서 1000까지로 구해보았습니다

2018/05/22 15:17

채상엽

제가 전에 작성 한 것들 다 사라졌네요.. - 채상엽, 2018/05/22 15:18

파이썬3

a=['*'.join(str(num)) for num in range(10,1001)] sum(map(eval, a))

답 93150

2018/05/26 19:03

Gerrad kim

sum1 = 0
for i in range(10,1001):
    num1 = 1
    for j in map(int, str(i)): num1 *= j
    sum1 += num1
print(sum1)

# Output:
#93150

2018/05/27 16:47

재즐보프

data=[]
for i in range(10,1001):
    result=1
    for j in str(i):
        result *= int(j)
    data.append(result)
print(sum(data))

2018/05/30 18:22

조성은

Python

ans = 0
a = 10
b = 1000
for i in range(a, b+1):
    in_ans = 1
    for c in str(i):
        in_ans *= int(c)
    ans += in_ans
print(ans)


2018/05/31 14:05

Taesoo Kim

엄청 어렵게 풀었네요

multiple_list = []

for i in range(10, 1001):
    count = 0
    num = str(i)
    temp_list = []
    multiple = 1
    while(len(num) > count ):
        temp_list.append(num[count])
        count += 1

    for i in temp_list:
        multiple = multiple * int(i)

    multiple_list.append(multiple)

print(sum(multiple_list))

2018/06/06 00:11

meteor

def MulDecomp(n, m):
    if n>m: n, m = m, n

    sum = 0
    for num in range(n, m+1):
        tmp = 1
        for char in str(num):
            tmp *= int(char)
        sum += tmp

    return sum

2018/06/10 21:18

박유빈

sum = 0

for num in range(10, 1001):
    mul = 1
    for letter in str(num):
        mul *= int(letter)
    sum += mul

print(sum)

2018/06/17 23:11

Hand

ans = 0
while True:
    n = str(input("10~1000까지의 수를 입력하세요. 전체 합을 구하시고 싶으시다면 'add'를 입력하세요 "))
    if n in {"add"}:
        print(ans)
        break
    if len(n) == 2: ans += int(n[0]) * int(n[1])
    if len(n) == 3: ans += int(n[0]) * int(n[1]) * int(n[2])
    if len(n) == 4: ans += int(n[0]) * int(n[1]) * int(n[2]) * int(n[3])

2018/06/18 02:47

co_de_ing


public class ten {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 10; i < 1001; i++) {
            int sum1 = 1;
            for (int j = 0; j < (i + "").length(); j++)
                sum1 *= Integer.valueOf((i + "").substring(j, j + 1));
            sum += sum1;
        }
        System.out.println(sum);
    }
}

2018/06/20 19:07

김지훈

#include <iostream>
using namespace std;
int main() {
    int sum=0,temp=0, temp_sum = 0;
    for (int i = 10; i <= 1000; i++) {
        temp = i;
        temp_sum = 1;
        do {
            temp_sum *= (temp % 10);
        } while ((temp /= 10) != 0);
        sum += temp_sum;
    }
    cout << sum;

    return 0;
}

2018/06/20 19:19

남해

#include <stdio.h>

int main()
{
    int i;
    int first = 0, second = 0, sum = 0;

    for (i = 10; i < 1001; i++)
    {
        if (i < 100)
        {
            sum = sum + ((i / 10) * (i % 10));
        }
        else
        {
            sum = sum + ((i / 100) * ((i / 10) % 10) * (i % 10));
        }
    }

    printf("sum: %d\n", sum);

    return 0;
}

2018/06/23 17:02

임창우

def el_mt(n):
    result = 1
    for i in str(n): result *= int(i)
    return result

print(sum(map(el_mt,range(10,1001))))

# 93150

2018/06/24 08:37

Creator

blank=[]
total=0

for n in range(10,1001):
    mul=1
    for i in str(n):
        mul *= int(i)
    blank.append(mul)

for k in range(len(blank)):
    total += blank[k]

print(total)

2018/07/03 01:22

김규영

def fn(s, e):
    list1 = list(range(s, e+1))
    sum = 0
    for i in list1:
        mul = 1
        for j in list(str(i)):
            mul = mul * int(j)
        sum += mul
    return sum

print(fn(10, 15))
print(fn(10, 1000))

2018/07/06 06:40

WJ K

package com.company;

public class Main {

    public static void main(String[] args) {
        getMult();
    }

    public static void getMult()
    {
        int sum = 0;
        int k = 0;
        int mul = 0;
        for(int i = 10; i < 1000; i++)
        {
            k = (int)(Math.log10(i)+1);
                 if(k == 2){
                     mul = (i/10) * (i%10);
                     sum += mul;
                 }
                 else {
                     mul = (i/100) * ((i%100)/10) * (i%10);
                         sum += mul;
                 }
        }
        System.out.println("총합은 "+sum);
    }

}

2018/07/06 17:03

이동수

python 3.6.5

h=[]
for i in range(10,1001): h.append(eval('*'.join(str(i))))
print(sum(h))

2018/07/09 15:08

leak

print( sum( reduce(lambda x,y: x*y, list(map(int, list(str(i))))) for i in range(1,1000000)) )

2018/07/14 17:56

구름과비

def mul_split(num):
    if(num < 10):
        print("Error: input number must bigger than 10 ")
    else:
        res = 0
        for i in range(10, num + 1):
            temp = 1
            for x in str(i):
                temp *= int(x)
            res += temp
        print(res)

2018/07/18 17:17

시간의마법

sum_list = []
sum = 0

for i in range(10,1001):
    number = str(i)
    str_list = list(number)

    mul = 1
    for j in str_list:
        mul *= int(j)

    sum_list.append(mul)

for k in sum_list:
    sum += k

print(sum)

2018/07/25 11:19

민수연

파이썬입니다.

sum = 0
for i in range(10,1001):
    mul = 1
    for n in str(i) : mul *= int(n)
    sum += mul
print(sum)

2018/07/25 18:31

김준영

c언어입니다. 기존의1~1000에서 각 숫자의 개수 구하기 코드를 변형하여 작성하였습니다.
#include<stdio.h>

int main()
{
    int sum = 0, mul=0;
    int i,j;
    int quotient = 0;

    for(i=10; i<=1000; i++)
    {
        printf("%d   ", i);
        j = i;
        mul = 1;
        while(j>0)
        {
            quotient = j%10;
            j = j/10;
            mul = mul *quotient;
            printf("sub : %d  ", quotient); 
        }
        printf("  자리수의 곱은 %d \n", mul);
        sum = sum+mul;
    }

    printf("10 ~ 1000 까지의 합계는 %d 입니다. ", sum);
}

2018/08/04 07:15

이우경

C로 작성

#include <stdio.h>

int main()
{
    int sum = 0;

    for(int i = 10 ; i < 1000; i ++ )
    {
        if( i >= 10 && i < 100 )                                //십의 자리
        {
            sum += ( ( i / 10 ) * ( i % 10 ) );
        }
        else if( i >= 100 && i < 1000 )                         //백의 자리
        {
            sum += ( ( i / 100 ) * ( ( i % 100 ) / 10 ) * ( i % 10 ) ) ;
        }
    }
    printf("%d", sum);
}

2018/08/06 23:35

Jaeju An

result=0
for i in range(10,1001):
    a = list(str(i))
    a= '*'.join(a)
    result += eval(a)
print(result)
#93150

2018/08/14 16:47

S.H

result=0
for i in range(10,1001):
    a = list(str(i))
    a= '*'.join(a)
    result += eval(a)
print(result)
#93150

2018/08/14 16:47

S.H

def number():
    fir = int(input('첫번째 숫자:'))
    sec = int(input('두번째 숫자:'))
    lst =[]
    for i in range(fir,sec+1):
        t = 1
        for j in range(0, len(str(i))):
            t *= int(str(i)[j])
        lst.append(t)
    return(sum(lst))

2018/08/28 19:57

김동률

파이썬 초보

tmp = []
tmp_1 = []
mul = 0
for i in range(10, 1000+1):
    i = str(i)
    tmp = list(i)
    if len(i) == 3:
        mul = int(tmp[0]) * int(tmp[1]) * int(tmp[2])
    elif len(i) == 4:
        mul = int(tmp[0]) * int(tmp[1]) * int(tmp[2])
    else:
        mul = int(tmp[0]) * int(tmp[1])
    tmp_1.append(mul)

print(sum(tmp_1))

2018/09/02 23:04

코도

tot=0
for i in range(10,1001):
    tot+=int(list(str(i))[0])*int(list((str(i)))[1])

print(tot)

2018/09/03 15:45

전형진

sum = 0
for i in range(10, 1001):
    mul = 1
    for j in [int(x) for x in str(i)]:
        mul *= j
    sum += mul

print(sum)

2018/10/14 20:28

phg98

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int sum = 0;
        for(int i = 1;i<=9;i++)
        {
            for(int j = 1;j<10;j++)
            {
                sum = sum + (i*j);
            }
        }
        for(int i = 1;i<=9;i++)
        {
            for(int j = 1;j<10;j++)
            {
                for(int k = 1;k<10;k++)
                sum = sum + (i*j*k);
            }
        }
        System.out.println(sum);
    }
}

2018/10/29 06:24

수빈

sum=0
for i in range(10,1001,1):
    num = str(i)
    mul=1
    for j in num:
        mul*=int(j)
    sum+=mul    
return print(sum)

2018/11/05 22:40

쨔이

result = 0

for i in range(10,1001):
    indi = 1
    for r in str(i):
        indi *= int(r)
    result += indi

print(result)

2018/11/06 00:19

그사람 남한 볼 수 있어요

public class KimSanghyeop
{
    public static void main(String[] args)
    {
        int f1;
        int temp;
        int res;
        int sum=0;
        for(f1=10;f1<=1000;f1++)
        {
            temp=f1;
            res=1;
            while(temp!=0)
            {
                res = res * (temp %10);
                temp=temp/10;
            }
            sum +=res;

        }
        System.out.println(sum);
    }
}

2018/11/06 14:10

김상협

sum=0
for x in range(10,1001):
    if x<100:
        sum+=(x//10)*(x%10)
    elif 100<=x<1000:
        sum+=(x//100)*((x//10)%10)*(x%10)
    elif x==1000:
        sum+=0
print(sum)

2018/11/07 11:16

빅디펜스

n=0
for x in range(10,1001):
    n+=eval("*".join(str(x)))

2018/11/15 21:20

Luzz

result = 0
for n in range(10, 1001):
    part = 1
    for i in str(n):
        part *= int(i)
    result += part
print(result)

2018/12/05 13:10

하이퍼

Java 8

import java.time.Duration;
import java.time.LocalTime;
import java.util.stream.IntStream;

public class tut05 {
  public static void main(String[] args) {
    int result = 0;
    LocalTime startTime = LocalTime.now();

    // 연산
    result  = IntStream.rangeClosed(10, 1000)
      .map(i -> (i+"").chars()
            .map(j -> Character.getNumericValue(j))
            .reduce((a, b) -> a * b)
            .getAsInt())
      .sum(); 

    LocalTime endTime = LocalTime.now();
    Duration duration = Duration.between(startTime, endTime);

    System.out.println("ducation : " + duration.getSeconds());
    System.out.println("result   : " + result);
  }
}

2018/12/05 14:32

n = 10
total = 0

while n < 1001 :
    sum = 1
    for i in list(str(n)) :
        sum *= int(i)
    total += sum
    n += 1

print(total)

2018/12/10 23:08

lucky1to10

def mul(str_num):
    listnum = list(str(str_num))
    total = 1
    for i in listnum:
        total *= int(i)
    return total

Sum = 0
for i in range(10,1001):
    Sum += mul(i)
print(Sum)

2018/12/13 00:24

오소영

public class KimSanghyeop
{
    public static void main(String[] args)
    {
        int sum=0;
        int temp;
        int res=1;
        for(int f1=10;f1<=1000;f1++)
        {
            temp = f1;
            res=1;
            while(temp!=0)
            {
                res = res *( temp % 10);
                temp = temp /10;
            }

            sum +=res;

        }
        System.out.println("합계 : "+sum);
    }
}

2018/12/17 13:33

김상협

from functools import reduce
tmp = 0
for i in range(10,1001) :
    tmp += reduce(lambda x,y : x*y, map(int,list(str(i))))
print(tmp)

2018/12/30 12:24

lucky1to10

res_mul = [1 for x in range(10,1001)]
for i in range(10,1001):
    for j in str(i):
        res_mul[i-10] *= int(j)
print(sum(res_mul))

답 : 93150

2019/01/03 16:00

판다네밥상

total_result = []
for i in range(10,1001):
    partial_result = 1
    for j in list(str(i)):
        partial_result *= int(j)
    total_result.append(partial_result)

answer = 0
for i in total_result:
    answer += i

print(answer)

2019/01/05 13:52

Woohyuck Choi

namespace codingdojang__
{
    class Program
    {
        static void Main(string[] args)
        {
            int total = 0;

            for (int i = 10; i < 1000; i++)
            {
                int temp = i;

                int temp_mul = 1;

                while (temp != 0)
                {
                    temp_mul *= temp % 10;
                    temp /= 10;
                }

                total += temp_mul;
            }

            Console.WriteLine(total);
        }
    }
}

답 - 93150

2019/01/08 10:32

bat

sum = 0
for i in range(10, 1001):
    mul = '*'.join(str(i))
    sum += eval(mul)
print(sum)

2019/01/08 14:20

달품

total = 0
for i in range(10,1001):
    if i >= 10 and i < 100:
        temp = (i//10)*(i%10)
        total += temp
    else:
        temp = (i//100)*((i//10)%10)*(i%10)
        total += temp
print(total)

2019/01/17 17:07

D.H.

#include<list>
#include<iostream>
using namespace std;

int main(void)
{
    int total = 0;
    list<int>ls; list<int>::iterator ltr;
    for (int i = 10; i <= 1000; i++)
    {
        int num0 = i / 1000; if (i< 1000)num0 = 1;
        int num1 = (i % 1000) / 100; if(i < 100)num1 = 1;
        int num2 = ((i % 1000) % 100) / 10; 
        int num3 = (i % 1000) % 100 % 10;
        int mult = num0 * num1*num2*num3;
        ls.push_back(mult);
    }
    ls.unique();
    for (ltr = ls.begin(); ltr != ls.end(); ltr++)
    {
        total += *ltr;
    }
    cout << total << endl;


}

2019/01/21 05:36

김상범

const memory = []
for(let i = 10; i<1001; i++){
  let result = 1
  const splitted = String(i).split('')
  for(let j = 0; j<splitted.length; j++ ){
    result = result*splitted[j]
  }
  memory.push(result)
}
let result = 0
for(let m= 0; m<memory.length; m++){
  result = result + memory[m]
}

console.log(result)
//93150

2019/01/24 13:24

돌도끼

R로 작성

split = function(front, back){
  collect = c(); sum = 0
  for(i in front:back){
    i = strsplit(as.character(i), "")[[1]]
    tmp2 = 1
    for(j in 1:length(i)) tmp2 = tmp2 * as.numeric(i[j])
    collect = append(collect, tmp2)
  }
  print(collect)
  for(i in 1:length(collect)){
    sum = sum + collect[i]
  }
  return(sum)
}

2019/01/30 11:35

강창구

result = 0
for i in range(10,1001):
    b = 1
    for num in str(i):
        b *= int(num)
    result += int(b)
print(result)

2019/01/30 21:43

손태호

[Python] string 으로 변환 후, 각 자릿수를 indexing 하여 곱하는 코드

def func(a, b):

    result = 0
    n = 1

    for i in range(a, b + 1):
        for j in range(len(str(i))):
            n *= int(str(i)[j])

        result += n
        n = 1

    return result
print(func(10, 1000))
93150

2019/02/02 23:23

x monciel

public class Sum_Multiplication {
    public static void main(String[] args){
        int sum = 0;
        int[] num = new int[4];

        for(int i = 10; i<=1000; i++){
            int flag = 0;

            for(int j=i; j>0; j /= 10)//num[0]- 1의자리수, num[1] - 10의자리수, num[2] - 100의 자리수, num[3] - 1000의 자리수
                num[flag++] = j%10;              

            if(num[3] == 0)
                if(num[2] == 0)
                    sum += num[1]*num[0];
                else
                    sum += num[2]*num[1]*num[0];
            else
                sum += num[3]*num[2]*num[1]*num[0];

        }

        System.out.println(sum);
    }
}

//코드에 대한 의견 환영입니다!

2019/02/07 22:47

김동수

def solution(a,b):
    summ = 0
    for i in range(a,b+1):
        xx = 1
        for j in str(i):
            xx *= int(j)
        summ += xx
    return summ

anwer : 93150

2019/02/09 18:02

dodoman

public static void main(String[] args) {
        int sum=0;
        for(int i=10;i<=1000;i++) {
            if(i<100)
                sum+=(i/10)*(i%10);
            if(100<=i && i<1000)
                sum+=(i/100)*(i%100/10)*(i%10);
            if(1000<=i)
                sum+=(i/1000)*(i%1000/100)*(i%100/10)*(i%10);
        }
        System.out.println(sum);
    }

2019/02/12 23:14

송인성

first = 0

for i in range(10, 1001) :
    i = str(i)
    second = 1
    for j in i :
        second = second * int(j)

    first = first + second

print(first)

파이썬입니다

2019/02/13 13:26

임민주

import re
box = []
for i in range(10,10001):
    b = str(i)
    p = re.compile(".+(?!0+).+")
    m = p.match(b)
    if m:
        c = m.group()
        d = eval("*".join(c))
        box.append(d)
print(sum([z for z in box]))
#1위 답안
print(eval('+'.join('*'.join(str(x)) for x in range(10, 10001))))

2019/02/16 16:54

김규묭

gob = 1
hab = 0
for i in range(10, 1001) :
    for j in str(i) :
        gob *= int(j)
    hab += gob
    gob = 1
print(hab)

2019/02/17 18:08

좋은나쎔

        static void Main(string[] args)
        {
            Console.WriteLine("*** 코딩도장 Q106 ***");
            // 10~1000 각 자릿수 분해하여 곱하기의 전체합 

            int startNum = 10;
            int endNum = 1000;

            string tmp;
            int gop = 1;
            int hap = 0;

            for (int i = startNum ; i <= endNum ; i++)
            {
                gop = 1;
                Console.WriteLine(i);
                tmp = i.ToString();

                foreach (char j in tmp)
                {
                    gop = gop * 1 * int.Parse(j.ToString());
                    Console.WriteLine("gop = " + gop);
                }

                hap = hap + gop;
            }

            Console.WriteLine("{0} 부터 {1} 까지 자릿수 분해하여 곱하기의 전체합은", startNum, endNum);
            Console.WriteLine("{0} 입니다.", hap);

2019/02/19 17:49

DrKilling

count_list=[0,0,0,0,0,0,0,0,0,0]
sum=0
for num in range(10,16):
    mul=1
    for index in str(num):
        mul*=int(index)
    sum+=mul
print(sum)

2019/02/25 17:12

def digitproduct(n):
    product=1
    for i in str(n):
        product*=int(i)
    return product

sum=0
for i in range(10,1001):
    sum+=digitproduct(i)

print(sum)

2019/02/28 20:29

ykleeac

result = 0
for n in range(10,16):
    kkk=1
    for i in str(n):
        kkk = int(i)*kkk
    result +=kkk

print(result)

2019/03/19 22:15

한상준

색다르게 사용자정의함수를 이용해서 코딩해보았습니다.

#include <stdio.h>

int sum(int a, int b)
{
    int answer = 0;
    for (int i = a; i <= b; i++)
    {
        if (i >= 10 && i < 100)
        {
            answer += ((i % 10) * (i / 10));
        }
        if (i >= 100 && i < 1000)
        {
            answer += ((i % 10) * (i / 10 % 10) * (i / 100));
        }
        else
        {
            answer += ((i % 10) * (i / 10 % 10) * (i / 100 % 10) * (i / 1000));
        }
    }
    return answer;
}


void main() {

    printf("%d", sum(10, 1000));
}

2019/03/24 15:51

Albert

c요~

#include <stdio.h>
int main(){
    int num,digit=0,sum=0,num1=1;
    for(int i=10;i<=1000;i++){
        num = i;
        num1 = 1;
        while(1){
            digit = num % 10;
            num1 *= digit;
            if(num>=10){
                num = num / 10;
            }
            else
                break;      
        }
        sum += num1;
    }
    printf("%d",sum);
}

2019/03/24 20:53

용 빈

c

#include <stdio.h>

int main()
{
    int sum = 0;

    for (int i = 10; i <= 1000; i++)
    {
        if (i < 100)
            sum += (i / 10)*(i % 10);
        else
            sum += (i / 100)*((i/10)%10)*(i%10);
    }
    printf("%d", sum);
    return 0;
}

2019/03/26 16:12

Hyuk

예전에 어떤 문제를 어떤 분께서 코딩없이 푸시는 걸보고 감명받아서,
이번 문제는 저도 코딩없이 풀어보았습니다.

1. 규칙성
10 > 1x0 | 20 > 2x0 | ... | 90 > 9x0
19 > 1x9 | 29 > 2x9 | ... | 99 > 9x9

>> 즉, 10 ~ 99 : [1~9단까지의 합]

100단위 : 1_00 -> 1 x [1~9단까지의 합]
200단위 : 2_00 -> 2 x [1~9단까지의 합]
.
.
.
900단위 : 9_00 -> 9 x [1~9단까지의 합]

>> 위의 100단위들을 sum한다고 가정하면,
>> (1~9까지의 합) x [1~9단까지의 합]

*****결국, 문제의 답은 [1 + (1~9까지의 합)] x [1~9단까지의 합] 을 구하면 됩니다.

a = 1~9까지의 합
b = 1~9단까지의 합

2. 1~9단까지의 합
(1~9의 합) * (1~9의 합) = [1~9단까지의 합]
a x a = b 

a = 45
b = 2025 

3. 전체 합
(1+a) x b
= (1+45) x 2025
= 93150

즉, 답은 93150입니다.

2019/04/02 17:54

Clifford Lindsher

a=[]
for i in range(10, 1001):
    b=1
    for  j in str(i):
        b *=int(j)
    a.append(b)
print(sum(a))        #93150

2019/04/20 21:18

cheer

proto=[]

for n in range(10,1001):
    if '0' in str(n):
        continue

    seki=1
    for i in str(n): 
        seki*=int(i) 

    proto.append(seki)

print(sum(proto))


계산 횟수를 쬐끔이라도 줄이기 위하여, 0이 하나라도 들어가는 수의 경우에는 아무런 조작도 않도록 조치를 하여 보았읍니다. 물론 이 문제에서는 볼륨이 크지 않으니 딱히 의미는 없지만;;

2019/04/30 23:14

암살자까마귀

n = 0
for i in range(10, 1000+1):
    t = 1
    while i != 0:
        t *= i%10
        i = i//10
    n += t

print(n)

2019/05/01 14:15

messi

누구나 생각가능한 방법 O(N)

#include <iostream>
#define MIN 10
#define MAX 1000
using namespace std;

int main()
{

    int sum = 0;
    int tmp_sum;
    for(int i = MIN; i <= MAX; i++)
    {
        tmp_sum = 1;
        for(int j = 1 ; i / j > 0 ; j*=10)
        {
            tmp_sum *= i / j % 10;
        }
        sum += tmp_sum;
    }
    cout << sum;
    return 0;

}

2019/05/01 14:44

이기준

temp = [k for k in range(10, 1001)]

tsum = 0
for i in temp:
    mul = 1
    for j in list(str(i)):
        mul = int(j) * mul
    tsum = mul + tsum
print(tsum)

2019/05/01 23:27

Hwaseong Nam

python 3.6

result = 0
for i in range(10, 1001):
    temp = 1
    for j in str(i):
        temp *= int(j)
    result += temp
print('result :', result)

2019/05/18 15:20

최상혁

hap=0

for i in range(10,1001):
    gop=1
    for j in str(i):
        gop*=int(j)
    hap+=gop

print(hap)

2019/06/09 13:36

꽁잎

list1=[]
for i in range(10,1001):
    list1.append(i)
sum1=0
sum2=0

for i in list1:
    if i <100:
        a=i//10
        b=i%10
        c=a*b
        sum1+=c
    else:
        a=i//100
        b=i%100
        c=b//10
        d=b%10
        e=a*c*d
        sum2+=e
print(sum1+sum2)

2019/06/11 23:14

서광석

public class SumOfEachDigitMutiplication {

    public static void main(String[] args) {

        int[] input = {10 ,11, 12, 13, 14, 15};

        int sum = 0;
        for(int i= 0; i<input.length; i++) {
            sum += getPartial(input[i]);
        }

        System.out.println(sum);
    }

    private static int getPartial(int num) {
        String strNumber =  String.valueOf(num);
        int mult = 1;
        for(int i=0; i<strNumber.length(); i++) {
            mult *= Integer.parseInt(String.valueOf(strNumber.charAt(i)));
        }
        return mult;
    }

}

2019/06/20 02:46

Seohwan Moon

result = []

for i in range(10, 1000 + 1):
    data = list(str(i))
    data = '*'.join(data)
    result.append(eval(data))

print(sum(result))

2019/06/21 12:44

파이썬주니어

"" sum_i = 0 for i in range(10,1001): list_i = list(str(i)) #print(list_i)

multi_j = 1
for j in list_i:
    multi_j *= int(j)
    #print(multi_j)
sum_i += multi_j

print(sum_i)

2019/06/27 13:01

SeongMin Hwang

package codingdojang;

import java.util.Scanner;

public class No106 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int startNum=0, endNum=0, sum=0;

        System.out.println("10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기");
        System.out.print("시작숫자>");
        startNum = scanner.nextInt();
        System.out.print("마지막 숫자>");
        endNum = scanner.nextInt();

        for(int i = startNum; i<=endNum; i++) {
            if(10<=startNum && 99>=startNum) {
                sum += (i/10) * (i%10);
            }else if(100<=startNum && 999>=startNum) {
                sum += (i/100) * ((i/100)/10) * (i%100);
            }else if(1000==startNum)
                sum += (i/1000) * ((i/1000)/100) * (((i/1000)/100)/10) * (i%1000);
        }

        System.out.println(startNum + "~" + endNum + "까지의 분해하여 곱하기의 전체합은" + sum + "입니다.");

    }

}

2019/07/01 00:12

No

public class multisum {
    public static void main(String[] args)
    {
        int x,y,a,b,n,c,d,sum;
        sum=0;
        for(n=10;n<=1000;n++) {
            if(n<=99&&n>=10) {
                a = n / 10;//10의자리
                b = n % 10;//1의자리
                c = a * b;
            }
            else if(n>99&&n<1000) {
                a = n / 100;//122를 100으로 나누면 1
                b= n % 100;//나머지는 22 b=22
                d= b/10;//b/10=2 그러므로 d에는 2가 저장
                b=b%10;//b=2
                c=a*d*b;
            }
            else
            {
                a=n/1000;//1231을 1000으로 나누면 1 a=1
                b=n%1000;//231 b=231
                x=b/100;//x=2
                b=b%100;//b=31
                y=b/10;//y=3
                b=b%10;//b=1
                c=a*x*y*b;
            }
            sum+=c;
        }
        System.out.println("1000까지의 숫자합은:"+sum);
    }
}

자바로 풀었습니다. 초보라..ㅠㅠ 원시적인 방법이라니...

2019/07/03 23:13

Lanok

result = []
for i in range(10,1001):
    t = str(i)
    a = 1
    for j in range(len(t)):
        a *= int(t[j])
    result.append(a)

print(sum(result))

2019/07/05 20:54

최은미

L = [str(x) for x in range(10, 1001)]; mul = 1; mulSum = 0
for i in L :
    for n in i: mul *= int(n)
    mulSum += mul
    mul = 1
print(mulSum)

2019/07/06 08:45

조현우

python

sum = 0
for i in range(10,1001):
    a = list(str(i))
    prod = 1
    for k in range(len(a)):
        prod *= int(a[k])
    sum += prod
print(sum)

2019/08/03 21:22

apriori

a=[]
j=0
mul=1
for i in range(10,1001,1):
    s=str(i)
    while j <= len(s)-1:
        mul=mul*int(s[j])
        j +=1
    a.append(mul)
    j=0
    mul=1
print(sum(a))

2019/08/06 08:07

박재욱

sum = 0
for i in range(10, 1001):
    t = 1
    map_1 = map(int, str(i))
    for j in map_1:
        t *= j
    sum += t
print(sum)

2019/08/28 12:09

이명운

list3 = 0
for i in range(10,1001):
    list1 = list(str(i))
    list2 = 1
    for j in range(0,len(list1)):
        list2 *= int(list1[j])
    list3 += list2
print(list3)

2019/08/30 16:33

황수빈

lstNums = [[int(a) for a in str(x)] for x in range(10, 1001)]

def multiply(lst):
    result = 1
    for x in lst:
        result = result*x
    return result

print(sum([multiply(lstNum) for lstNum in lstNums]))

2019/09/06 19:14

Dreaming Pug

PHP

$a   = 10;
$b   = 1000;
$arr = [];
foreach (range($a, $b) as $n) {
    $arr[] = array_product(str_split(strval($n)));
}
$result = array_sum($arr);
print_r($result); // 93150

2019/09/11 09:49

d124412

def gobhab(a, b):
    n = 0
    for i in range(a, b + 1):
        k = 1
        for j in range(0, len(str(i))):
            k = k * int(str(i)[j])
        n = n + k
    print('{}부터 {}까지 각 자릿수를 곱해 더하면 {}가 됩니다.'.format(a, b, n))

2019/09/21 03:14

박주현

int sum = 0;
        for(int i=10; i<=1000; i++) {
            int m = 1;
            char[] j = String.valueOf(i).toCharArray(); 
// 각각 자릿수 별로 char array로 만들었다.

            for(int n=0; n<j.length; n++) {
                m *= Character.getNumericValue(j[n]); 
// 각 자릿수를 모두 더한다.
            }
            System.out.println(m);
            sum += m ;
        }
        System.out.println("10부터 1000까지 답은 : "+sum);

답 : 93150

2019/09/27 16:41

yeeun shim

for i in range(10,1001):
    tmp = str(i)
    sum = 1
    for value in tmp:
        sum = sum * int(value)
    result = result + sum

print(result)

2019/10/05 23:31

semipooh

파이썬

sum = 0
for x in range(10, 1001):
    multi_x = 1
    for i in str(x):
        multi_x *= int(i)
    sum += multi_x
print(sum)

2019/10/08 21:29

Jzay

package d106_taking_apart_multiplying_sum;
import java.util.Scanner;
public class TakingApartMultiplyingSum {

    int apartmulti(int X) { //분해하고 곱하는 함수
        int i=1, result=1;
        for(i=1; X/i>0; i*=10) result*=(X/i)%10;
        return result;
    }

    public static void main(String[] args) {
        TakingApartMultiplyingSum am=new TakingApartMultiplyingSum();
        Scanner sc=new Scanner(System.in);
        System.out.println("Input two numbers:");
        int X=sc.nextInt();
        int Y=sc.nextInt();
        int j, sum=0;
        int[] multi=new int[Y-X+1];

        for(j=0; j<Y-X+1; j++) {
            sum+=am.apartmulti(X+j); //전체 합 구하기
        }
        System.out.println("Output:"+sum);
        sc.close();
    }
}

2019/10/09 08:23

Katherine

python 3

sum1 = 0
for x in range(10, 1001):
  mul = 1
  for xx in str(x):
    mul = mul*int(xx)
  sum1 += mul

print(sum1)

출력: 93150

2019/10/25 10:39

조현우

package practiceLv1;

import java.util.ArrayList;

public class 각숫자분해하여곱하기의전체합구하기 {

    public static void main(String[] args) {
        int numbers = 0;
        for(int i = 10; i<1001; i++) {
            if(i<100) {
                numbers+=((i/10)*(i%10));
            }
            if(100<=i) {
                numbers+=(((i/10)/10)*((i/10)%10)*((i%100)%10));
            }
            if(i==1000) {
                numbers+=(0);
            }
        }
        System.out.println(numbers);

    }

}

2019/11/07 21:54

big Ko

파이썬

ssum=0
for x in range(10,1001):
    multi=1
    for i in str(x):
        multi *= int(i)
    ssum+=multi
print(ssum)

2019/11/12 16:04

data big


파이썬 3.6 입니다

def sum_multiples(n, m):
    rst = []

    for i in range(n, m + 1):
        mul = 1
        for ch in str(i):
            mul *= int(ch)
        rst.append(mul)
    return sum(rst)

print(sum_multiples(10, 1000))

2019/11/26 16:46

vkospi

k = 0
for n in range(10, 1001) :
    k += eval("*".join(str(n)))
print(k)

결과

93150

2019/12/06 13:42

GG

c = 0 for i in range(10, 0): a = str(i) b = 1 for x in range(len(a)): b = b * int(a[x]) c = c + b print(c)

2019/12/15 20:43

김민규

num =[]
for i in range(10,16):
    s = list(str(i))
    s = '*'.join(s)
    num.append(eval(s))
    print(s+'=',end=' ')
    print(eval(s))

print(sum(num))    

2019/12/19 19:16

뚜루꾸까까

파이썬입니다.

print(eval('+'.join('*'.join(str(x)) for x in range(10, 1001))))

2019/12/19 19:21

Sean

int Sum_of_Each_Cipher_multiply()
{
int result =0;

for(int T=0;T<10;T++)
{
for(int S=0;S<10;S++)
{
for(int F=0;F<10;F++)
{
if(T==0)
{
result += S*F;
}
else if(T==0&&S==0)
{
result += F;
}
else if(!(T==0&&S==0))
{
result += T*S*F;
}
}
}
}


return result;
}

2019/12/22 19:15

Anderson

#0이 들어가는 숫자를 제외한 리스트 뽑기
lst=[]
for n in range(10,1001):
    n=str(n)
    if "0" not in n:
        lst.append(n)
#각 요소의 자리에 있는 숫자들을 서로 곱한 뒤에 더하기        
result1=0
for k in lst:
    t=1
    for n in range(len(k)):
        t=t*int(k[n])
    result1+=t
print(result1) #93150

2019/12/27 16:58

박시원

def get_mul(n):
    mul = 1
    for i in str(n):
        mul *= int(i)
    return mul

print(sum([get_mul(x) for x in range(10,1001)]))

2020/01/03 14:12

김민기

numLst = [x for x in range(10,16)]
empty = []
for i in numLst:

    i = str(i)
    tmp = int(i[0])*int(i[1])
    empty.append(tmp)

print(sum(empty))

2020/01/10 17:48

Jung Marco

a = 1

conseq = []

for x in range(10,1001):
    n = list(str(x))
    m = list(map(int, n))
    for i in m:
        a *= i
    conseq.append(a)        
    a = 1

print(sum(conseq))

2020/01/15 13:56

김희준

파이썬3입니다

def da(x):
    mul = 1
    for i in tuple(map(int,str(x))):
        mul *= i
    return mul

answer = 0
for i in range(10,1001):
    answer += da(i)

print(answer)

2020/01/18 01:22

우재용

1)
sum=0
for i in range(10,1001):
  n=1
  for j in str(i):
    n=n*int(j)
  sum=sum+n
print(sum)

2)
print(sum(eval('*'.join(str(x))) for x in range(10, 1001) if(str(x).find("0")< 0)))

2020/01/20 00:51

mr. gimp

Nfinish, Nlist, Nmain = 0, list(), 1
for i in range(10,1001):
    Nlist = list(str(i))
    for j in range(len(Nlist)):
        Nmain = Nmain * int(Nlist[j])
    Nfinish += Nmain
    Nmain = 1
print(Nfinish)

2020/01/23 13:33

BlakeLee

sum1=0

for i in range(10,100):

a=str(i)

sum2=int(a[0])*int(a[1])

sum1=sum1+sum2

sum2=0

for i in range(100,1000):

a=str(i)

sum2=int(a[0])*int(a[1])*int(a[2])

sum1=sum1+sum2

print(sum1)

2020/01/28 00:53

HyukHoon Kim

result = [] for i in range(0, 10): for j in range(0, 10): a = i*j result.append(a)

result1 = [] for i in range(0, 10): for j in range(0, 10): for k in range(0, 10): b = ijk result1.append(b)

sum = 0 for x in result: sum += x

sum1 = 0 for y in result1: sum1 += y

print(sum + sum1)

2020/02/14 12:54

이국성

from functools import reduce
answer = 0
for i in range(10, 1001):
    answer = answer + reduce(lambda x,y : x*y, [int(i) for i in str(i)])
print(answer)

2020/02/19 16:58

KMH

파이썬 3.8
def special_mul(i,j):
    array = []
    for t in range(i, j+1):
        t = str(t)
        mul = 1
        for k in range(len(t)):
            mul *=int(t[k])
        array.append(mul)
    return(sum(array))

print(special_mul(10,1000))

2020/02/22 23:41

카레맛카레

``````{.python} result = 0 num=0 for i in range(10, 1001): if len(i) == 2: num = i[0] * i[1] result += num i+= 1 elif len(i) == 3: num = i[0] * i[1] * i[2] result += num i+= 1 else: num = i[0] * i[1] * i[2] * i[3] result += num i+= 1

print result

```

2020/02/29 14:26

PythonLover&Master_JK73

a=[]
b=[]
for i in range(10,1001):
    a.append(i)
for i in range(len(a)):
    a[i]=str(a[i])
    c=1
    for j in range(0,len(a[i])):
        c*=int(a[i][j])
    b.append(c)
print(sum(b))
#답: 93150

2020/02/29 16:03

Shiroha

l=[]
for i in range(10,1001):

    l.append('*'.join(str(i))) #iterable 자료형만 join 함수 인수로 쓸수있음

print(eval('+'.join(l)))

2020/03/04 18:06

황예진

파이썬 3.7

sum = 0
each = 1

for i in range(10, 1001):
    for j, v in enumerate(str(i)):        
        each *= int(v)
    sum += each
    each = 1

print(sum)

2020/03/04 18:13

우제훈

sum=0

for i in range (10, 1001):
print (i,end='')
a=str(i)
a_len=len(a)
mul=1
for j in range (0,a_len):
mul=mul*int(a[j])
sum=sum+mul
print (' ',mul,' ',sum)

print ()
print ('result=',sum)

2020/03/06 22:13

Buckshot

import re
p=re.compile('\d')
result=0
for i in range(10, 1001):
    ccw=1
    for j in p.findall(str(i)):
        ccw*=int(j)
    result+=int(ccw)
print(result)

2020/03/10 00:45

Caplexian _

#include <iostream>
#include <string>
#include <vector>
using namespace std;
/*
예로, 10~15까지의 각 숫자 분해하여 곱하기의 전체 합은 다음과 같다.

10 = 1 * 0 = 0
11 = 1 * 1 = 1
12 = 1 * 2 = 2
13 = 1 * 3 = 3
14 = 1 * 4 = 4
15 = 1 * 5 = 5

그러므로, 이 경우의 답은 0+1+2+3+4+5 = 15
*/

//정답:93150
void Func(int s, int e) {
    vector<int> v;
    int total = 0;
    int sum;
    for (int i = s; i <= e; i++) {
        sum = 1;
        cout << i<<" = ";
        string s = to_string(i);
        for (int j = 0; j < s.length(); j++) {
            if (j == s.length() - 1) { cout << s[j] <<" = "; }
            else { cout << s[j] << " * "; }
            sum *= (s[j] - '0');
        }
        cout << sum << endl;
        v.push_back(sum);
        total += sum;
    }
    cout << endl;
    for (int i = 0; i < v.size(); i++) {
        if (i == v.size() - 1) { cout << v[i] << " = "; }
        else{cout << v[i] << " + ";}
    }
    cout << total << endl;
}

int main() {
    Func(10, 1000);
}

2020/03/20 14:39

++C

s=0
for i in range(10,1001):
    if 10<=i<=99:
        s+=((i//10) * (i%10) )      
    elif 100<=i<=999:
        s+=( (i//100) * (i%100//10 ) * (i%10) )     
    else:
        pass
print(s)

파이썬 입니다.

2020/03/28 20:38

di figo

result = 0
for i in range(10,1001):
    if i<100:
        string = str(i)
        result = result + (int(string[0])*int(string[1]))
    elif i >= 100 and i<1000:
        string = str(i)
        result = result + (int(string[0])*int(string[1])*int(string[2]))

print(result)

2020/04/05 01:51

Lee Lee

num = 0

for i in range(10, 1001):
    s = list(str(i))
    s = '*'.join(s)
    num += eval(s)

print(num)

2020/04/20 23:19

ptjddn95

sum=0
for m in range(10,1001):
    if len(str(m))==3:
        sum+=int(str(m)[0])*int(str(m)[1])*int(str(m)[2])
    elif len(str(m))==2:
        sum+=int(str(m)[0])*int(str(m)[1])
    else:pass
print(sum)

2020/04/22 00:17

양양짹짹

temp=0

for i in range(10,1001):   
    k=str(i)
    if len(k) == 2 :
        temp += int(k[0])*int(k[1])
    elif len(k) ==3 :
        temp += int(k[0])*int(k[1])*int(k[2])

print(temp)

2020/04/28 17:19

조윤재

public class Q106 {

    public static void main(String[] args) {

        int sum=0;
        for (int i = 10; i < 1001; i++) {
            if(i<100) sum += (i/10) * (i%10);
            if(i>99&&i<1000) sum += (i/100) * (i/10%10) * (i%10);
            if(i==1000) sum += (i/1000) * (i/100%10) * (i/10%10) * (i%10);
        }
        System.out.println(sum);
    }
}

2020/05/05 13:26

Daniel Park

from functools import reduce
def sum_mult():
    return sum([reduce(lambda x, y: int(x) * int(y), str(i)) for i in range(10, 1001)])

2020/05/06 20:15

김준혁

lista =[]
listb =[]
listc =[]

for x in range(10,100):
    a = str(x)
    lista.append(int(a[0])*int(a[1]))
for x in range(100,1000):
    b = str(x)
    listb.append(int(b[0])*int(b[1])*int(b[2]))
for x in range(1000,1001):
    c = str(x)
    listc.append(int(c[0])*int(c[1])*int(c[2])*int(c[3]))

A = (sum(lista))
B = (sum(listb))
C = (sum(listc))

print(A+B+C)

파이썬 입문자라,,,,ㅎㅎ 화이팅

2020/05/07 23:59

Money_Coding

range1=list(map(int,input().split("~")))
number_list=[i for i in range (range1[0],range1[1]+1)]
number_plus=[]
for i in number_list:
    string=(','.join(str(i))).split(",")
    k=1
    for a in string:
        k=k*int(a)
    number_plus.append(k)
x=0
for y in number_plus:
    x+=y
print(x)

2020/05/08 16:19

도희성

``` list = []

b = 0

for x in range(10,1001): a = 1 for i in str(x): a *= int(i) list.append(a)

for i in list: b += i

print(b)

맨날 배열 for 문만 사용하니 실력이 늘지 않는 느낌..

2020/05/25 18:16

진)파이썬마스터

hab = 0
for i in range(10,1001):
    gob = 1
    for num in str(i):
        gob *= int(num)
    hab += gob
print(hab)

2020/06/02 12:26

mir

package main

import (
    "fmt"
    "strconv"
    "strings"
)

func sum(N int, M string) int {
    var returnvalue int = 1
    check := strings.Split(M, "")
    for i := 0; i < N; i++ {
        num, _ := strconv.Atoi(check[i])
        returnvalue = returnvalue * num
    }
    return returnvalue
}

func forgo(N int, M int) int {
    var final int
    for i := N; i <= M; i++ {
        var s string
        s = strconv.Itoa(i)
        final = final + sum(len(s), s)
    }
    return final
}

func main() {
    var M1 int
    var M2 int
    fmt.Scanf("%d %d", &M1, &M2)
    fmt.Println(forgo(M1, M2))
}

2020/07/05 11:50

BlakeLee

eval함수 쓰임을 몰라 코드가 길어졌었는데 다른 분들 풀이보고 한단계 배울 수 있었습니다. 다들 감사합니다.

print(sum([eval("*".join(str(i))) for i in range(10,1001)]))

2020/07/27 14:40

김병관

#include <iostream>
#include <string>
using namespace std;

int main() {
    int result_Sum = 0;

    for (int number = 10; number <= 1000; number++) {
        string stringNumber = to_string(number);
        int multi_Sum = 1;
        for (int i = 0;i< stringNumber.length(); i++) {
            multi_Sum *= stringNumber[i] - '0';
        }
        result_Sum += multi_Sum;
    }

    cout << result_Sum << endl;

    return 0;

}

2020/10/01 19:07

김동현

n = 0
for i in range(10,1001):
    a = list(str(i))
    b = 1
    for j in range(0, len(str(i))):
        b *= int(a[j])
    n += b
print(n)

2020/10/02 22:07

유태훈

li=[]
for i in range(100,116):
    total=1
    for j in str(i):
        total*=int(j)
    li.append(total)
print(sum(li))

2020/10/05 10:45

AppleFarmer

public static void main(String[] args) {        

        String[] number = new String[991];

        int sum = 0;

        for(int i=10; i<1001; i++) {
            number[i-10] = String.valueOf(i);
        }

        for(String t : number) {
            char[] temp = t.toCharArray();
            System.out.println(Arrays.toString(temp));
            int mult = 1;
            for(char s : temp) {
                mult *= Character.getNumericValue(s);
            }
            sum += mult;
        }
        System.out.println(sum);

2020/10/06 17:46

B A

class NumDivider:
    def __init__(self):
        pass
    def doDiv(self,a,b):
        sum = 0
        for n in range(a,b+1):
            l = str(n)
            psum = 1
            for i in range(0,len(l)):
                psum *= int(l[i])
            sum += psum
        print(sum)

a = 10
b = 15

c = NumDivider()
c.doDiv(a,b)

2020/10/10 15:33

footsize

자바입니다.

public class multiple_sum {


    public static int b(int num){
        int mult = 0;
        for(int i =10;i<=num;i++) {
            int a = i;
            int b = 0;
            int[] count = new int[]{1,1,1,1};
            while(a!=0) {
                count[b]=a%10;
                a/=10;
                b++;
                }
            mult += count[0]*count[1]*count[2]*count[3];
            }
        return mult;

    }

    public static void main(String[] args) {
        System.out.println(b(1000));
    }

}

2020/10/13 11:06

ᆞᄉ

파이썬입니다. eval function을 몰랐네요, 항상배우고갑니다

sum_nums = 0

for str_num in range(10, 1001):
    multi_nums = 1

    for digit in str(str_num):
        multi_nums *= int(digit)

    sum_nums += multi_nums

print(sum_nums)

2020/10/19 16:26

방금프로그래밍시작함

reduce 를 사용해서 풀었구요, 0이 포함이 될 때는 어차피 +0이 되어서, if 문으로 제외를 했습니다. if 문을 넣었을 경우, 820번, 안넣었을 경우 991번이 나오네요. 조금이라도 필요없는 계산은 걸러봤습니다.

sum = 0
count = 0
for i in range(10, 1001):
    if str(i).count("0") != 1:
        count += 1
        sum += functools.reduce(lambda x, y: x * y, [int(i) for i in str(i)])

print(sum) # 93150
print(count)

2020/10/19 23:00

vcne0705

result=0
for i in range(10,1001):
    result += eval('*'.join(str(i)))
print(result)

2020/10/29 09:00

aryagaon

answer=0
for x in range(10,1001):
    x=str(x)
    multiplied=1
    for y in x:
        multiplied=multiplied*int(y)
    answer+=multiplied

print(answer)


2020/11/02 22:21

안녕하세요

result_list = []

for x in range(10,1001):
    x = str(x)
    if len(x) == 2:
        result1 = int(x[0]) * int(x[1])
        result_list.append(result1)
    elif len(x) == 3:
        result2 = int(x[0]) * int(x[1]) * int(x[2])
        result_list.append(result2)
    elif x == 1000:
        pass

print(sum(result_list))

python 3.9.0

2020/11/05 01:54

김태관

mult = 0

for num in range(10,1001):
    mult1 = 1
    for i in range(len(str(num))) :
        mult1 = mult1*int(str(num)[i])
    mult += mult1

print(mult)

2020/11/13 09:21

DSHIN

result = 0
for i in range(10,1001):
    if i//1000 == 0:
        result += (i//100) * (i%100//10) * (i%100%10)
    if i//100 == 0:
        result += (i//10) * (i%10)

print(result)

2020/11/18 18:19

김우석

a,b=map(int,input().split(" "))
sum=0

for i in range(a,b+1):
  str1=str(i)
  re=1
  for k in range(len(str1)):
    re*=int(str1[k])
  sum+=re

print(sum)

2020/11/18 22:29

장래희망파이썬마스터

package codeDojang;

public class Prac {
    public static void main(String[] args) {

    int total = 0;
    int var = 1;

        for(int i=10;i<=1000;i++) {
            int tmp=i;
            while(tmp/10!=0) {
                var *= tmp%10;
                tmp/=10;
            }
            var*=tmp%10;
            total+=var;
            var = 1;
        }
    System.out.println(total);



    }
}

2020/11/19 10:03

yijun kim

total = 0
mul = 1

for i in range(10,1001):
    for j in str(i):
        mul *= int(j)
    total += mul
    mul = 1


print(total)

2020/11/23 11:33

안상원


public class pro6 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=0;
        int b=0;
        int c=0;
        int sum=0;

        for(int i=10; i<1001; i++) {
            a= i%10;
            b= i/10%10;
            if(i>=100) {
                c= i/100%10;
                sum+=a*b*c;
            }
            else
                sum+=a*b;
        }

        System.out.println("총 합은 " + sum);

    }
}

2020/12/09 21:52

이정섭

def multiply(start,end):
    data = {x : 1 for x in range(start,end+1)}

    for i in range(start,end+1):
        for j in str(i):
            data[int(i)]*=int(j)
    return data

2020/12/23 10:25

hankyu

int sum=0;
        for(int i=10; i<1001; i++) {
            if(i<100) 
                sum += (i/10)*(i%10);
            else if(i<1000)
                sum += (i/100)*((i%100)/10)*((i%100)%10);
            else if(i==1000)
                sum += 0;
            }
        System.out.println(sum);

2020/12/24 21:19

씨앗나무

105번 문제에서 얻은 팁으로 쉽게 작성할 수 있었습니다. 숫자형을 문자열 자료형으로 바꿔 for문을 돌리며 곱셈하니까 간편하네요.!

sum = 0

for i in range(10, 1001):
    mul = 1
    for j in str(i):
        mul = mul * int(j)
    sum = sum + mul

print(sum)

2021/01/04 16:39

코딩뚜

c로 풀어보았습니다.

#include <stdio.h>

int main(void)
{
    int a, b;
    int result_sum = 0;
    for (int i = 10; i <= 1000; i++)
    {
        a = i;
        int result = 1;
        while ((a/10) >= 1)
        {
            b = a%10;
            a /= 10; 
            result *= b;
        }
        result *= a;
        result_sum += result;
    }
    printf("%d", result_sum);
    return 0;
}

2021/01/05 23:53

asd

sum = 0
for i in range(10,1001):
    temp = 1
    a = list(map(int,list(str(i))))
    for j in a:
        temp *= j
    sum += temp
print(sum)

2021/01/07 11:50

박성진

Python Code

Result =1
Totalsum =0

for i in range(10,1001):
    for x in str(i):
        Result *= int(x)
    Totalsum += Result
    Result =1

print("TotalSum: {0}".format(Totalsum))

2021/01/09 15:33

DPark

print(sum([eval('*'.join(str(n))) for n in range(10,1001)]))

2021/01/15 17:03

손우민

sum = 0

for i in range(10, 1001):
    mul = 1
    for j in str(i):
        mul *= int(j)
    sum += mul

print(sum)

2021/01/16 14:12

asdfa

파이썬 3.9.1입니다.

sum = 0
for num in range(1,1001):
    mul = 1
    for x in str(num):
        mul *= int(x)
    sum += mul
print(sum)

2021/01/19 22:58

devlop

numv = list(range(10,1001))
lis = []

for i in numv:
    a = str(i)
    if len(a)<=2:
        q = int(a[0])*int(a[1])
        lis.append(q)
    elif len(a)<=3:
        q = int(a[0])*int(a[1])*int(a[2])
        lis.append(q)
    elif len(a)<=4:
        q = int(a[0])*int(a[1])*int(a[2])*int(a[3])
        lis.append(q)

print(sum(lis))

별로 좋지 못한 풀이같다.. eval 이라는 함수를 알아간다..

2021/01/24 20:56

fox.j

from functools import reduce

num = list(map(str, range(10,1001)))

result = 0

for i in num:
    i_int = list(map(int,list(i)))
    result += reduce(lambda x,y: x*y, i_int)
print(result)

2021/01/31 21:17

Ha

def main():
    sum = 0
    for i in range(10,1001):
        N = str(i)
        N_sum = 1
        for j in N:
            N_sum *= int(j)
        sum += N_sum

    print(sum)

if __name__ == '__main__':
    main()

2021/02/05 12:51

서해원

list = []
for i in range(10,1001):
    if len(str(i)) == 2:
       x = int(str(i)[0]) * int(str(i)[1])
       list.append(x)

    elif len(str(i)) == 3:
        x = int(str(i)[0]) * int(str(i)[1]) * int(str(i)[2])
        list.append(x)

print(sum(list))

2021/02/05 22:10

개촙오

[파이썬 2020.3]

sum = 0
for num in range(10, 1001):
    mul = 1
    for i in str(num):
        mul *= int(i)
    sum += mul
print(sum)

2021/02/11 16:32

PenLoo

num = []
for i in range(10,1001):
    s = list(str(i)) # i 값을 하나 하나 str으로 변환 후 리스트로 만듬

    s = str.join("*",s) # s = "*".join(s) # 리스트를 특정 구분자를 이용해 문자열로 변환

    num.append(eval(s)) # eval 함수는 문자열로 된 계산식을 숫자형으로 된 계산식으로 해석하여 값을 낸다.

print(sum(num))

2021/02/18 16:44

원유준

result=0

for i in range(10,1001):
    a=1
    for x in str(i):
        a=a*int(x)
    result=result+a

print(result)

2021/02/25 11:16

최우진

result = 0

for i in range(10, 1000+1):
    multiple = 1
    for j in str(i):
        multiple *= int(j)

    result += multiple

print(result)

2021/03/25 20:30

잘해보자

sum = 0
for num in range(10, 1001):
    m = 1
    for i in str(num):
        m *= int(i)
    sum += m

print(sum)

[결과]

93150

<파이썬 3>

2021/04/06 22:53

Ruo Lee

Python3입니다.

>>> from functools import reduce
>>> def f(start, end):
...     def g(n):
...         return reduce((lambda x, y: int(x) * int(y)), list(str(n)))
...
...     return sum([g(n) for n in range(start, end)])
...
>>> f(10, 16)
15
>>> f(10, 1001)
93150

2021/04/11 15:30

최용

def makeAns(num):
    total = 1
    for j in range(len(num)):
        total = total * int(num[j])
    return total

print(sum([makeAns(str(i)) for i in range(10, 1001)]))

베스트 받은 해법 ㄷㄷㄷ 하네요

2021/04/13 17:45

와장창

def split_multi(start,end):
    for i in range(int(start),int(end)+1):
        multi=1
        for j in str(i):
            multi = multi * int(j)
        print(multi)    

2021/04/25 15:21

최태호

def gop(a,b):
    return eval('+'.join('*'.join(str(x)) for x in range(a,b)))

print(gop(10,16))

2021/05/09 16:38

ss2663

l =[]
for i in range(10,1001):
    a = list(str(i))
    b = eval('*'.join(a))
    l.append(b)
print(sum(l))

eval을 몰라서 한참 고민함..ㅠㅠ

2021/05/11 16:39

약사의혼자말

# 숫자간의 곲셈식을 string list로 저장 후, eval실행.
nSum = 0
listComputes = ['*'.join(str(x)) for x in range(10, 1001)]
for strCompute in listComputes:
    nSum += eval(strCompute)

print(nSum)

2021/06/08 13:37

DongKyu Lee

list = []

for j in range(10, 1001):
    mult=1
    for i in (str(j)):
        mult*=int(i)
    list.append(mult)

total_sum=0
for i in list:
    total_sum += i

print(total_sum)

2021/06/23 09:39

inkuk ju

def num_sum():
    start = int(input("시작 숫자 : "))
    final = int(input("마지막 숫자 : "))
    result = 0

    for i in range(start, final + 1):
        multiple = 1
        for j in str(i):
            multiple *= int(j)
        result += multiple

    return result

print(num_sum())


2021/07/01 21:40

김준규

#codingdojing_multipleNum

#10~1000까지의 각 숫자들을 분해하여 각 자리수의 곱하기의 전체

totalSum = 0

for num in range(10,1001):
    eachSum = 1
    for c in str(num):
        eachSum *= int(c)  #각 자리곱하기

    totalSum += eachSum



print(totalSum) #93150

2021/07/09 14:37

Jaeman Lee

b = 1
c = 0
for i in range(10,1001) :
    d = str(i)
    for a in range(0,len(d)) :
        b = int(d[a])*b
    c += b
    b = 1
print(c)

2021/07/11 14:43

김성호

파이썬으로 작성되었습니다.

ps_array = []
for num in range(10, 16):
    num = str(num)
    result = 1
    if '0' in num:
        result = 0
        ps_array.append(result)
    else:
        for n in num:
            result *= int(n)
        ps_array.append(result)

print(sum(ps_array))

2021/07/23 20:29

baek choi

a = 0
for i in range(10,1001):
    b = 1
    for t in str(i):
        b = b*int(t)
    a += b
print("%d" % a)        


2021/08/11 15:47

서현준

sum=0
for i in range(10,16):
    multiplication=1
    for j in str(i):
        multiplication*=int(j)
    sum+=multiplication
print(sum)

2021/08/15 10:52

쥬쥬

result = 0 
for n in range(10,1001) :
    multyple = 1
    for m in str(n) :
        multyple *= int(m)
    result += multyple
print(result)

2021/08/23 15:15

//python

st = 10
fn = int(input("10부터 몇까지??"))
C =[]

for i in range(st,fn+1):
    i = str(i)
    a = len(i)
    c = 1
    for n in range(a):
        c *= int(i[n])
    C.append(c)
print(sum(C))

2021/08/26 23:06

박대선

a,b = input('a~ b 까지의 각 숫자를 입력해주시오(두 수 사이는 공백) :').split()

a = int(a)
b = int(b)
count = 0

List_10 = []
List_100 = []

sum_10 = 0
sum_100 = 0

List_count = 0
List_100count = 0

for i in range(a, b + 1):  
    i = str(i)

    if len(i) >= 3: # 세 자리수인 것들
        for k in i:
            List_100.append(k)

            count += 1  
            List_100count += 1 

            if count == 3:
                count = 0

                mult_100 =int(List_100[List_100count - 3])*int(List_100[List_100count - 2])*int(List_100[List_100count - 1])

                sum_100 = sum_100 + mult_100


    elif len(i) <= 2:  
        for j in i:
            List_10.append(j)

            count += 1  
            List_count += 1 

            if count == 2:
                count = 0
                mult_10 = int(List_10[List_count - 2]) * int(List_10[List_count - 1])

                sum_10 = sum_10 + mult_10

print(sum_10 + sum_100)

좀 길고 복잡하긴 하지만 해냈습니다..ㅎㅎ

2021/09/12 14:04

cripto gazua

A=1
B=0
for i in range(10,1001):
    for j in str(i):
        A*=int(j)
    B+=A
    A=1
print(B)

2021/09/14 21:00

trim39r

sum=0
for i in range(10,1001):
    product=1
    for num in str(i):
        product *= int(num)
    sum += product
print(sum)

2021/09/17 16:13

ninanino

fn, sn = map(int, input('10~1000까지 두개의 정수를 입력하시오: ').split())

totals = 0
for en in range(fn, sn+1):
  mulnum = 1  
  for estrnum in str(en):
    mulnum *= int(estrnum)
  totals += mulnum

print(f'{fn} ~ {sn} 까지의 각 숫자를 분해하여 곱한 전체의 총 합은: {totals}')

2021/09/30 00:19

Charles

result=0
sub=1
for i in range(10,1001):
    for j in range(len(str(i))):
        sub*=int(str(i)[j])
    result+=sub
    sub=1
print(result)

2021/10/11 23:23

LSW

static int sum;

    static void multi(int x) {
        int num = Integer.parseInt((x+"").charAt(0)+"");
        for (int i = 1; i < (x+"").length(); i++) {
            num *= Integer.parseInt((x+"").charAt(i)+"");
        }
        sum += num;
    }

    public static void main(String[] args) {
        for(int i = 10; i < 1001; i++) {
            multi(i);
        }
        System.out.println(sum);
    }

2021/10/24 00:54

박대현

arr = []
total = 0
for i in range(10,1001):
    multi = 1
    arr = list(map(int,str(i)))
    length = len(arr)
    for j in range(length):
        multi *= arr[j]

    finalmulti = multi
    total += finalmulti

print(total)

2021/11/23 09:32

정설경

def solution (a,b) :
    d=[]
    for k in range(a,b+1) :   
        c = eval("*".join(str(k)))
        d.append(c)

    print(sum(d))

solution(10,1000)

2021/12/16 12:15

양캠부부

i,p = 1,0
for x in range(10,1001):
    for a in list(str(x)):
        i *= int(a)
    p += i
    i = 1
print(p)

2021/12/23 02:58

0 o

s=0
for i in range(10,1001):
    mul=1
    for m in str(i):
        mul *=int(m)
    s += mul
print(s)

2022/01/20 19:28

로만가

// Rust

use std::string::ToString;

fn main() {

let (start, end) = (10, 1000);
let mut total = 0;

for i in start..=end {
    let product: u32 = i.to_string().chars()
                                    .map(|c| c.to_digit(10).unwrap())
                                    .product();
    total += product;
}

println!("{}", total);

}

2022/01/26 00:12

JW KIM

total = 0

for i in range(10,1001):
    a = []
    while i//10 != 0:
        a += [i%10]
        i = i//10
    a += [i%10]

    x_product = a[0]
    for x in range(len(a)-1):
        x_product *= a[x+1]

    total += x_product

print(total)

2022/02/04 15:26

엄태용


``````{.python}
#10~100 까지

# 10 ==> 1*0 = 0
# 11 ==> 1*1 = 1
# 12 ==> 1*2 = 2



#100 ==> 1*0*0 = 0
#999 ==> 9*9*9 = 

sum = 0


for i in range(10,1001):
    num = int(i)

    if (num <100) :
            a = num // 10
            b = num % 10

            print (num, "를 분리한 결과는", a, b, "입니다")
            sum += a*b

            print(sum)
    elif (num>=100 & num <1000) :
            a = num // 100
            b = (num %100) //10
            c = (num%100) %10

            print (num, "를 분리한 결과는", a, b, c, "입니다")
            sum += a*b*c
            print(sum)

    else :
        sum += 0


print (sum)



2022/02/18 10:26

아기고앵

93150

sum=0
for a in range(10,1001):
    times=1
    for i in str(a):
        times*=int(i)
    sum+=times
print(sum)

2022/03/03 16:28

코딩초보박영규

result=[]
for i in range(1,1001):
   a = str(i)
   a='*'.join(a)
   result.append(eval(a))
print(sum(result))

2022/03/10 14:17

mintou

answer = 0
for i in range(10,1001):
    count = 1
    for i2 in str(i):
        count *= int(i2)
    answer += count

print(answer) #93150

답보고 eval 이라는 함수 잘알아갑니다~!

2022/03/16 07:38

kh ahn

total_sum = 0
for i in range(10,1001):
    str_int = list(str(i))
    int_sum = int(str_int[0]) * int(str_int[1])
    total_sum += int_sum
print(total_sum) # 22275

2022/04/05 09:45

강TT

l=[]
for i in range(10,1001):
    a='*'.join(map(str,str(i)))
    l.append(eval(a))


print(sum(l))

2022/04/13 11:26

이병휘

mul=[] for i in range(10,16): li=[] a = 1 for j in str(i): li.append(int(j)) for k in li: a*=k mul.append(a) print(sum(mul))

2022/04/14 14:27

yunjae

num = [x for x in range(10,1001)]
result = 0
for i in range(len(num)):
    mul = 1
    for j in str(num[i]):
        mul *= int(j)
    result += mul
print(result)

2022/04/19 00:47

고구마츄

package com.algorithm.algorithmpractice.dojang;

public class To1000 {
    public static void main(String[] args) {

        int total = 0;
        for (int i = 10; i < 1001; i++) {
            int row = 1;
            int temp_i = i;
            while (temp_i > 0){
                int temp = temp_i % 10;
                temp_i /= 10;
                row *= temp;
            }
            total += row;
        }
        System.out.println(total);
        //# answer : 93150
    }
}

절대 String으로 변환하지 않으려고 했읍니당.

2022/05/01 19:50

inkuk ju

a = []
from functools import reduce
for i in range(10,1001):
  a[len(a):]=[reduce(lambda x,y : int(x)*int(y), list(str(i)))]
print(sum(a))

2022/05/05 19:45

Jack Maker

num_list = [str(i) for i in range(10,1001)]
sum = 0
for i in range(len(num_list)):
  multiply = 1
  for k in range(len(num_list[i])):
    multiply *= int(num_list[i][k])
  sum += multiply
sum

2022/05/26 16:51

이승훈


def mul(number):
    ans = 1
    for i in number:
        if i == 0:
            return 0
        ans *= i

    return ans

number_list = []

for number in range(10, 1001):
    num = number
    x = [int(a) for a in str(num)]

    number_list.append(mul(x))

print(sum(number_list))

곱하기 함수를 만든 후 이용했습니다.

2022/06/25 10:26

박종훈

def mul_sum(a, b):
    muls = []
    for i in range(a, b+1):
        mul = 1
        for j in str(i):
            mul *= int(j)
        muls.append(mul)
    return sum(muls)

ui1 = int(input("각 숫자끼리 곱의 전체 합을 구합니다. 시작 숫자 입력>> "))
ui2 = int(input("끝 숫자 입력>> "))
print(mul_sum(ui1, ui2))

2022/07/10 16:48

Estelle L

a=[i*j*k for i in range(1,10) for j in range(10) for k in range(10)]
b=[i*j for i in range(0,10) for j in range(10)]
sum(a)+sum(b)

2022/07/27 13:57

김보라

#include<stdio.h>
int main(void)
{
    int i, sum = 0;
    char str[5];
    for (i = 10; i < 1001; i++)
    {
        sprintf(str, "%d", i);
        int j = 0, mul = 1;
        while (str[j] != '\0')
        {
            mul *= ((int)str[j] - 48);
            j++;
        }
        sum += mul;
    }
    printf("%d\n", sum);
}

c언어입니다.

2022/08/04 21:21

코딩재미

python

n1 = 10
n2 = 1000

numbers = [x for x in range(n1,n2+1)]
mult = 1 #한 숫자 분해해서 곱한 임시 값
tot_sum = 0

for x in numbers:
    for i in range(len(str(x))):
        mult *= int(str(x)[i])
    tot_sum += mult
    mult = 1 #초기화

print(tot_sum)

2022/08/11 21:09

세라

sum = 0
for i in range(10, 1001):
    mul = 1
    for j in range(len(str(i))):
        mul *= int(str(i)[j])
    sum += mul

print(sum)

python

2023/01/26 14:31

마라떡볶이

int n = 0;
int result = 0; //결과값
for(int i = 0; i <= 10; i++){
  n+=i;
}
for(int i = 1; i <=9 i++){
  result+=n * i;
}
System.out.println(result);

java

2023/02/26 11:59

권동하

저는 math 모듈의 prod 라는 숫자를 곱해주는 함수를 이용했습니다. 파이썬 3.8버전부터 사용이 가능하다고 합니다.

한줄로 만들어보았습니다. eval 함수 잘 배워갑니다

print(sum([math.prod([int(n) for n in str(num)]) for num in range(10, 1001) if str(num).find('0') < 0]))

2023/02/27 18:01

seonguk jo

startInt=10
endInt=15

result=0
for i in range(startInt,endInt+1):
    if i<100:
        result+= (int(str(i)[0])*int(str(i)[1]))
    elif i<1000:
        result+= (int(str(i)[0])*int(str(i)[1])*int(str(i)[2]))
    elif i==1000:
        result+= (int(str(i)[0])*int(str(i)[1])*int(str(i)[2])*int(str(i)[3]))

print(result)

2023/03/10 17:37

Sol Song

자바

package temp;

public class MultipleTentoThousand { public static void main(String[] args) { int ten =10, thou = 1000, n, sum=0;

        for (int i = 1; i < 10; i++) {
            for (int j = 0; j <10 ; j++) {
                sum += i*j;
                for (int j2 = 0; j2 < 10; j2++) {
                    sum += i*j*j2;

                }
            }
        }
        System.out.println("10 : "+sum);

}

2023/03/21 17:23

Do Il Yoon

# eval 생각이 안 나서 pop으로 풀었어요.

result = 0

for i in range(10, 1001):
    each_number = list(map(int, str(i)))
    mul = 1
    while True:
        mul = mul * each_number.pop()
        if each_number == []:
            break
    result += mul

print(result)

2023/03/23 21:08

관산정

input_num1 = 10
input_num2 = 1000
sum = 0
for i in range(input_num1, input_num2 + 1):
    mul_val = 1
    for i in str(i):
        mul_val *= int(i)
    sum += mul_val
print(sum)

2023/04/03 15:44

HoHyeon Kim

a = input("시작숫자")
b = input("종료숫자")
sum=0
for i in range(int(a),int(b)+1):
    mul=1
    for j in range(len(str(i))):
            mul=mul*int(str(i)[j])

    sum=sum+mul
print(sum)

2023/07/11 09:54

김윤식

sum_ = 0
for i in range(10,1001):
   pdt = 1
   for j in str(i):
      pdt *= int(j)
   sum_ += pdt
print(sum_)

2023/08/11 11:03

siu yoon

result = 0
for num in range(10, 16):
    temp = 1
    for n in str(num):
        temp *= int(n)
    result += temp
print(result)

2023/08/12 21:52

이광진

totalsum=0 multi=1 for i in range(10,1001): multi=1 for x in str(i): multi *= int(x) totalsum += multi

print(totalsum)

2023/10/03 02:06

TOP CODE

sum = 0
for i in range(10, 1001):
    num = i
    gob = 1
    while num > 0:
        gob *= (num % 10)
        num //= 10
    sum += gob
print(sum)

2023/11/05 23:34

insperChoi

def multipy(num):
    total = 1
    str_num = str(num)

    for digit in str_num:
        total *= int(digit) 
    return total


total_1000 = 0
for i in range(10, 1001):
    total_1000 += multipy(i)

print(total_1000)

강의로 배운 코드를 변형해서 만들었습니다

2024/04/09 22:08

예즤YeZ

for num in range(10,1000):
    x=num/10
    y=num%10
    result=int(x*y)
    print(result,end=' ')

2024/05/26 12:51

이현민

방법1.

from functools import reduce
print(sum([reduce(lambda x,y: int(x)*int(y), str(i)) for i in range(10, 1001)]))
> 93150

방법2.

print(sum([eval('*'.join(str(i))) for i in range(10, 1001)]))
> 93150

2024/10/10 07:10

무므뭇

result = 0
for i in range(10,1001):
    multiple = 1
    for j in str(i):
        multiple = int(j) * multiple
    result += multiple
print(result)

2024/12/12 07:25

Orange

def digitMul(s):
  digVal = 1
  for i in s:
    digVal *= int(i)
  return digVal

digSum = 0
for a in range(10,1001):
  digSum += digitMul(str(a))

print(digSum)

2025/02/21 19:32

Dasol Lee

import math

a = int(input("원하는 숫자1:"))
b = int(input("원하는 숫자2:"))

num = sum(math.prod(int(n) for n in str(i)) for i in range(a,b+1))

print(num)

2025/12/25 19:14

k

from math import prod

total = 0
total = sum(prod(int(x) for x in str(i)) for i in range(10, 1001))

print(total)

2026/05/14 15:56

우영재

목록으로