안녕하세요. 스마트팩토입니다.
수를 입력하고 그 숫자의 각자리수의 합을 구하는 코드를 알아보겠습니다.
1. while 반복문 : 각 자리수합 구하는 코드
가. 나머지 연산자: %
예를 들어서 22%10을 하면 나머지가 2가 남게 된다.
a=22%10 하면 a=2가 출력된다.
나. 몫 연산자 //
예를 들어서 22//10을 하면 몫이 2가 된다.
b=22//10을 하면 b=2가된다.
이를 이용하면
a =321 에서 각 자리수 합 6을 출력할 수 있다.
코드를 보면서 알아보겠습니다.
a=321
Sums=0
변수 값을 지정하여 321을 지정하고 각 자리수를 합을 저장할 변수 Sums 로 했습니다.
while a>0:
b=a%10
a//=10
Sums+=b
while 문의 반복을 위해 조건으로 a>0으로 했습니다.
각 자리수는 10으로 나누어서 나머지를 더하는 방식으로 구합니다.
즉 321을 10으로 나누면 32 에 나머지가 1 입니다.
32를 10으로 나누면 3에 나머지가 2 이고
1을 10으로 나누면 0에 나머지가 1이 됩니다.
여기서 321, --> 32--> 3 --> 0 즉 몫을 a 값으로 변하게 하면
while반복문은 a=0일 때 빠져나옵니다.
각 단계별로 나머지를 다 더하게 되는데 그 값은 Sums 에 저장됩니다.
print(Sums)
나머지들의 합을 더한값을 출력하면 끝~
a=321
Sums=0
while a>0:
b=a%10
a//=10
Sums+=b
print(Sums)
num=int(input("숫자를 입력하세요. 입력:"))
n=1
result=num
c=num-1
계산되는 과정을 보기 위해서 변수설정을 여러개로 했습니다.
num은 입력 받는 숫자. 그 수보다 작아지는 수가 c 로 변수를 설정하고, num! 은 결과적으로 result! 로 계산하기 위해 설정했습니다.
while n<num:
print("num:",num,"num-1:",c, "resutl:",result)
result*=c
n+=1
c-=1
num=n 이 같아지는 전 단계까지 진행합니다. ! 특성상 1까지인데 등호가 들어가면 0까지 되어 결과값이 0 이됩니다.
그래서 항상 마지막이 1이되도록 하기 위해서 위처럼 설정하였습니다.
n은 1씩 증가 시키고, c는 하나씩 감소시켰습니다. 초기 설정이 입력한 값보다 작다는 것..
print("num:",num,"num-1:",c, "resutl:",result)
는 결과값을 보기 위해서 넣었습니다 .
팩토리얼 코드는 설정하는 사람에 따라 다양할 수 있습니다.
print(result)
num=int(input("숫자를 입력하세요. 입력:"))
n=1
result=num
c=num-1
while n<num:
print("num:",num,"num-1:",c, "resutl:",result)
result*=c
n+=1
c-=1
print(result)
입력한 수의 각자리수 합 구하는 코드
이번에는 숫자를 입력받아 그 각 자리수의 합을 구하는 코드입니다.
a=int(input("숫자를 입력해 주세요: "))
Sums=0
while a>0:
b=a%10
a//=10
Sums+=b
print("입력한 수의 각 자리 합:", Sums)
while 반복문 블럭에서 코드를 보고 무한 루프를 돌게 되기 때문에 조건에 제한을 두어야 합니다.
if 조건을 써서
while a>0:
if a% 10 !=0:
b=a%10
a//=10
Sums+=b
을 넣어도 됩니다.
a=int(input("숫자를 입력해 주세요: "))
Sums=0
while a>0:
b=a%10
a//=10
Sums+=b
print("입력한 수의 각 자리 합:", Sums)
'Python' 카테고리의 다른 글
파이썬 초급 #041 함수 - 함수 문법 def hi (): (0) | 2022.02.19 |
---|---|
파이썬 초급 #040 while 반복문 영어단어 입력하고 모음, 자음 개수 카운터하는 프로그램 (0) | 2022.02.17 |
파이썬 초급 #038 while 반복문 팩토리얼 6! 재귀 함수 (0) | 2022.02.15 |
파이썬 초급 #037 while 반복문 구구단 출력(무한루프 - q 누르면 종료) (0) | 2022.02.14 |
파이썬 초급 #036 while 반복문 점수 입력한 점수 평균구하기 for 문으로 나타내기 , 리스트변수에 저장하기(append()) (0) | 2022.02.13 |
댓글