c์ธ์ด ์ค๊ฐ๊ณ ์ฌ ๊ธฐ์ถ๋ฌธ์ ํ์ด๋ฅผ ์ด์ด์ ํด๋ณด์.
์ฌ์ฉ์์๊ฒ n ๊ฐ์ ์ ๋ ฅ๋ฐ์ ๊ทธ ๊ฐ๊น์ง ๋ชจ๋ ๋ํ๊ณ , ๋ํ ๊ฐ์ด ์ ๋ ฅ๊ฐ์ ๋์ง ์๋ ์ต๋๊ฐ์ ์ฐพ๋ ๋ฌธ์ ๋ค.
๋ฌธ์
n๊ฐ์ ์ ๋ ฅํ๋ฉด 1+2+...+k=sum ์ด n์ ๋์ง ์์ ๋ ์ฆ, sum<=n์ธ k ๊ฐ๊ณผ sum ๊ฐ์ ๊ตฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
ํ์ด
n๊ฐ์ scanf๋ก ๋ฐ์์ฃผ๋ฉด ๋๊ณ , sum๊ณผ k๋ ์ฐ์ 0์ผ๋ก ์ด๊ธฐํํด์ค๋ค.
๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ, ๋๋ for๋ฌธ ๋์ while์ ์ฌ์ฉํ๋ค. ์ด๋ค ๋ฐ๋ณต๋ฌธ์ ์ฐ๋๋์ ๋ฐ๋ผ ๋ด๋ถ ๋ก์ง์ด ๋ฌ๋ผ์ ธ์ผํ๋ฏ๋ก, ์ฐ์ ํ์ด๋ฐฉ๋ฒ์ ์ ํ์ธํด๋ณด์.
์๋ฅผ ๋ค์ด n ๊ฐ์ 500์ผ๋ก ๋ฐ์์ ๋, sum๊ฐ์ด 500์ ๋์ง ์๋ ์กฐ๊ฑด์ while์ ์ ๋ ฅํด์ค ๊ฒ์ด๋ค.
while(sum<=n)์ด๋ฏ๋ก, sum์ด 500์ ์ด๊ณผํ ์ฑ๋ก ๋ฐ๋ณต๋ฌธ์ ํต๊ณผํ๊ฒ ๋๋ค.
๊ทธ๋์ ๋ฐ๋ณต๋ฌธ์์ ํ์ถํ sum๊ณผ k๋ฅผ ์ถ๋ ฅ ์ง์ ์ ํ๋ฒ์ฉ ๋นผ์ฃผ๋ ๋ก์ง์ ์ถ๊ฐํ์.
์ฝ๋
#include<stdio.h>
int main(){
int n, sum=0, k=0;
printf("n๊ฐ ์
๋ ฅ:");
scanf_s("%d", &n);
while(sum<=n){
k++; // k++๋ฅผ ๋จผ์ ์ถ๊ฐํด์ฃผ์. ์์ ์ค์!
sum += k;
}
// sum๊ฐ์ด n์ ์ด๊ณผํด์ ๋ฐ๋ณต๋ฌธ์ ์คํํ์ง ์๊ณ ํ์ถํ๊ฒ. ์ฆ ์ง์ ๋จ๊ณ๋ก ๋์๊ฐ์ค์ผ ํจ.
sum -= k; // ๋ฐฉ๊ธ ๋ํ k๊ฐ์ ์ง์์ค(k--์ ์ ์คํํด์ผ ํจ!)
k--; // k๋ ํ ๋จ๊ณ ์ค์ฌ์ค
printf("k=%d sum=%d", k, sum);
return 0;
}
์คํ๊ฒฐ๊ณผ
C์ธ์ด, ์ฝ๊ฒ ํ์ด์ด C์ธ์ด Express , ์ฐ์๋ ์ ๋ํ๊ธฐ , ๋ค ๋ํ ๊ฐ ๊ตฌํ๊ธฐ , ์ค๊ฐ๊ณ ์ฌ , ์ํ๋๋น , ๊ธฐ์ถ๋ฌธ์ ํ์ด
๋๊ธ