/*์๊ฐ๋ง*/
/******************************************************
๋ชฉ์ : ์ผ์ ์๋ฆฌ(4์๋ฆฌ๊น์ง)์ ์ญ์ ์๋ฆฌ(5์๋ฆฌ๋ถํฐ)์์ ๋ฐ์ฌ๋ฆผ๋๋ ํ๋ก๊ทธ๋จ
******************************************************/
/**********************************************
๋ฌธ์ ์ .
ํ์ฌ ์ฝ๋๊ฐ 2์๋ฆฌ 3์๋ฆฌ 5์๋ฆฌ์์๋ ์ ์๋์ด ๋๋ ๋ค๋ฅธ ์๋ฆฟ์์์๋ ์ ์คํ๋์ง ์๋๋ค.
์๋ง ์์ ๋ฌธ์ ๋ผ๊ณ ์ถ์ธกํจ. (์ง๊ธ์ ๊ทธ๊ฒ๋ค๋ ์๋๋ค.)
************************************************/
#include
#include <math.h>
int main(void) {
Start:
int N/*ํฌ์ ๊ฐ*/,
Log_I/*๋ก๊ทธ์ ์ ์ ๋ถ๋ถ*/,
Log_JN/*๋ก๊ทธ ๋น๊ต ์์ฐ์ ์ง์ ๋ถ๋ถ*/,
Simi/*๊ทผ์ฌ๊ฐ*/,
n/*์๋ฆฟ์*/,
High_Ex/*์ต๊ณ ์๋ฆฌ ์ซ์๋ฅผ ๋บ ๊ฐ*/,
r=0/*๋ฐ๋ณต ํ์*/;
double Log_D/*๋ก๊ทธ ์์ ๋ถ๋ถ*/;
// ์ฌ์ฉ์๋ก๋ถํฐ N ์ ๋ฐ๋ ๋ถ๋ถ
N = 0;
printf("๊ทผ์ฌ๊ฐ์ ์๊ณ ์ถ์ ์๋ฅผ ์ ๋ ฅํ์์ค. (๋จ, ์์์ 0์ ์ ์ธํจ.) ");
scanf_s("%d", &N);
if (N <= 0) {
printf(" ์์์ 0์ ๋ถ๊ฐํฉ๋๋ค.");
return 0;
}
// N ์ด ๋ช์๋ฆฌ ์์ธ์ง ์์๋ณด๋ ๋ถ๋ถ
Log_I = (int)(log10((double)N));
n = (int)Log_I + 1;
// N ์ด 5์๋ฆฌ์ ๋ฏธ๋ง์ธ ๋ถ๋ถ
if (n
Log_D = log10((double)N) - Log_I;
for (Log_JN = 2; Log_JN <= 100; Log_JN++) {
if (log10((double)Log_JN) <= Log_D && Log_D
High_Ex = N - (Log_JN * pow(10, (n-1)));
goto Repeat_One_N;
}
}
Repeat_One_N:
for (Log_JN = 2; Log_JN <= 100; Log_JN++) {
Log_I = (int)(log10((double)High_Ex));
Log_D = log10((double)High_Ex) - Log_I;
if (log10((double)Log_JN) <= Log_D && Log_D
if (n - 2 - r > 2) {
High_Ex = High_Ex - (Log_JN * pow(10, (n - 2 - r)));
}
n = n - 1;
r++;
Log_JN = 2;
if ((n - 2 - r) <= 0) {
goto Half_Up_1;
}
}
}
Half_Up_1:
if (High_Ex >= 5) {
Simi = N - High_Ex + 10;
} else {
Simi = N - High_Ex;
}
}
// N ์ด 5์๋ฆฌ์ ์ด์์ธ ๋ถ๋ถ
if (n >= 5) {
Log_D = log10((double)N) - Log_I;
for (Log_JN = 2; Log_JN <= 100; Log_JN++) {
if (log10((double)Log_JN) <= Log_D && Log_D
High_Ex = N - (Log_JN * pow(10, (n - 1)));
goto Repeat_two_N;
}
}
Repeat_two_N:
for (Log_JN = 2; Log_JN <= 100; Log_JN++) {
Log_I = log10((double)High_Ex);
Log_D = log10((double)High_Ex) - Log_I;
if (log10((double)Log_JN) <= Log_D && Log_D
if (n - 2 - r >= 2) {
High_Ex = High_Ex - (Log_JN * pow(10, (n - 2 - r)));
}
n = n - 1;
r++;
Log_JN = 2;
if ((n - 2 - r) <= 1) {
goto Half_Up_2;
}
}
}
Half_Up_2:
if (High_Ex >= 50) {
Simi = N - High_Ex + 100;
}
else {
Simi = N - High_Ex;
}
}
// ๊ทผ์ฌ๊ฐ์ ํ๋ฉด์ ์ถ๋ ฅํ๋ ๋ถ๋ถ
printf(" ๊ทผ์ฌ๊ฐ์ %d์ ๋๋ค.", Simi);
// ๋ค์ ํ ๊ฒ์ธ๊ฐ ๋ชฏ๋ ๋ถ๋ถ
printf(" ๋ค์ ํ์๊ฒ ์ต๋๊น? (๋ค์ ํ๋ ค๋ฉด 1 ์ ๋ ฅ)");
scanf_s("%d", &r);
printf(" ");
if (r == 1) { goto Start; }
return 0;
}
๋ญ๊ฐ ๋ฌธ์ ์ผ๊น์ ใ ใ
(stdio.h๋ ์ ์๋๋ฐ ์ฌ๋ผ์ง๋ค์ ๋์์ ์ฌ๋ฆฌ๋๊น)
ํ๊ฐค์ ๋ฌผ์ด๋ณด๋ฉด ๋ ๋นจ๋ฆฌ ๋ต ๋ค์ ์ ์์๋ฏ
์ฌ๊ธด ํ๊ฐค์ด ์๋๋๋ค - dc App
๊ทผ๋ฐ ์ง์ฑ ํ๊ฐค๋ฌ๋ค์ ํ๊ฐค์์ ํ์์ผ๋๊น
https://www.codentalks.com/๋ก
๊ฐ์ - dc App
๊ณผ์ ๋ ํผ์ํ์ธ์