Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MultiplyingByRotation/곽세환: Difference between revisions

From ZeroWiki
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[MAX] = {0};
  int number[MAX] = {0};
  number[0] = factor1;
  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[i] * pow(base, i);
  dec += number[i] * pow(base, i);
  for (i = 1; i < number_jarisu; i++)
  for (i = 1; i < number_jarisu; i++)
  dec2 += number[i] * pow(base, i - 1);
  dec2 += number[i] * pow(base, i - 1);
  dec2 += number[0] * pow(base, number_jarisu - 1);
  dec2 += number[0] * pow(base, number_jarisu - 1);
   
   
  if (dec * factor2 == dec2)
  if (dec * factor2 == dec2)
  break;
  break;
   
   
  number[1]++;
  number[1]++;
   
   
  for (i = 1; i < number_jarisu; i++)
  for (i = 1; i < number_jarisu; i++)
  {
  {
  if (number[i] == base)
  if (number[i] == base)
  {
  {
  number[i + 1]++;
  number[i + 1]++;
  number[i] = 0;
  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[i] << " ";
  // 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] << " ";
}

댓글


MultiplyingByRotation