More actions
imported>Unknown No edit summary |
(Repair batch-0002 pages from live compare) |
||
| Line 14: | Line 14: | ||
cin >> base >> factor1 >> factor2; | cin >> base >> factor1 >> factor2; | ||
int number | int number[MAX] = {0}; | ||
number | number[0] = factor1; | ||
int number_jarisu = 1; | int number_jarisu = 1; | ||
| Line 25: | Line 25: | ||
dec2 = 0; | dec2 = 0; | ||
for (int i = 0; i < number_jarisu; i++) | for (int i = 0; i < number_jarisu; i++) | ||
dec += number | dec += number[i] * pow(base, i); | ||
for (i = 1; i < number_jarisu; i++) | for (i = 1; i < number_jarisu; i++) | ||
dec2 += number | dec2 += number[i] * pow(base, i - 1); | ||
dec2 += number | dec2 += number[0] * pow(base, number_jarisu - 1); | ||
if (dec * factor2 == dec2) | if (dec * factor2 == dec2) | ||
break; | break; | ||
number | number[1]++; | ||
for (i = 1; i < number_jarisu; i++) | for (i = 1; i < number_jarisu; i++) | ||
{ | { | ||
if (number | if (number[i] == base) | ||
{ | { | ||
number | number[i + 1]++; | ||
number | number[i] = 0; | ||
} | } | ||
else | else | ||
| Line 51: | Line 51: | ||
cout << number_jarisu << endl; | cout << number_jarisu << endl; | ||
//for (int i = number_jarisu - 1; i >= 0; i--) | //for (int i = number_jarisu - 1; i >= 0; i--) | ||
// cout << number | // cout << number[i] << " "; | ||
} | } | ||
== 댓글 == | == 댓글 == | ||
---- | ---- | ||
[[MultiplyingByRotation]] | [[MultiplyingByRotation]] | ||
Latest revision as of 00:16, 27 March 2026
소감
통과X
소스
#include <iostream>
#include <cmath>
using namespace std;
const int MAX = 20; // 최대 20자리까지
void main()
{
int base, factor1, factor2;
cin >> base >> factor1 >> factor2;
int number[MAX] = {0};
number[0] = factor1;
int number_jarisu = 1;
int dec, dec2;
while (true)
{
dec = 0;
dec2 = 0;
for (int i = 0; i < number_jarisu; i++)
dec += number[i] * pow(base, i);
for (i = 1; i < number_jarisu; i++)
dec2 += number[i] * pow(base, i - 1);
dec2 += number[0] * pow(base, number_jarisu - 1);
if (dec * factor2 == dec2)
break;
number[1]++;
for (i = 1; i < number_jarisu; i++)
{
if (number[i] == base)
{
number[i + 1]++;
number[i] = 0;
}
else
break;
}
if (i == number_jarisu)
number_jarisu++;
}
cout << number_jarisu << endl;
//for (int i = number_jarisu - 1; i >= 0; i--)
// cout << number[i] << " ";
}