<C++> 일반 수학 1 - 1

긍이·2023년 11월 26일
0

C++

목록 보기
9/12

오늘은 백준 알고리즘 8단계 일반 수학 1 문제들을 일부 풀어 볼 것이다

📌 백준 알고리즘 8단계 일반 수학 1

✔ 2745번 진법 변환


#include <iostream>

using namespace std;

int main()
{
	int B;
	string N;

	cin >> N >> B;

	int* Narr = new int[N.size()] {0,};

	for (int i = 0; i < N.size(); i++)
	{
		if (N[i] >= 'A')
		{
			Narr[i] = (int)N[i] - 'A'+10;
		}
		else
		{
			Narr[i] = (int)N[i] - '0';
		}
	}

	int N10 =0; 

	for (int i = 0; i < N.size(); i++)
	{
		int b = B;
		if (i < N.size() - 1)
		{
			int p = N.size() - i-2;
			for (int j = 0; j < p; j++)
			{
				b*=B;
			}
			N10 += Narr[i] * b;
		}
		else
		{
			N10 += Narr[i];
		}
	}

	cout << N10;
}

SIVERXIX 36
1894952057

문제를 풀고있었는데 갑자기 노트북이 고장났다..
피시방으로 와서 이어서 풀어본다..ㅎㅎ

✔ 11005번 진법 변환 2

#include <iostream>

using namespace std;

int main()
{
	int N, B;

	cin >> N >> B;
	int* Narr = new int[100] {0, };

	int f = 0;
	int Nb = N;

	while (Nb >= B)
	{
		Narr[f] = Nb % B;

		f++;
		if (Nb / B < B)
		{
			Narr[f] = Nb / B;
			break;
		}
		Nb = Nb / B;
	}

	if (Nb < B)
	{
		Narr[f] = Nb;
	}

	for (int i = 0; i < f+1; i++)
	{
		char c = '0';
		if (Narr[f - i] >= 10)
			c = Narr[f - i] + 'A' - 10;
		else
			c = Narr[f - i] + '0';
		cout << c ;
	}
}

310310 31
ACS0

✔ 2720번 세탁소 사장 동혁

#include <iostream>

using namespace std;

int main()
{
	int T;
	cin >> T;

	int** arr = new int*[T] {0, };
	for (int i = 0; i < T; i++)
	{
		arr[i] = new int[4] {0, };
		float C =0;
		cin >> C;
		arr[i][0] = C /25;
		arr[i][1] =  (C-(arr[i][0]* 25)) / 10;
		arr[i][2] =  (C- (arr[i][0] * 25)-(arr[i][1] * 10)) / 5;
		arr[i][3] = (C - (arr[i][0] * 25) - (arr[i][1] * 10) - (arr[i][2] * 5)) / 1;
	}

	for (int i = 0; i < T; i++)
	{
		cout << arr[i][0] <<" " << arr[i][1] << " " << arr[i][2] << " " << arr[i][3] << "\n";
	}
}

3
2
100
500
0 0 0 2
4 0 0 0
20 0 0 0

✔ 2903번 중앙 이동 알고리즘

/*
* 0 = 4 4*1(4) - 0;
* 1 = 9 4*4(16) - 5;
* 2 = 25 9*4(36) - 11; 
* 3 = 81 25*4(100) - 19;
* 4 = 289 81*4(324) - 35; 
* 5 = 1089 289*4(1156) - 67;

0 = 2*2
1 = 3*3 (2*2)-1
2 = 5*5 (3*2)-1
3 = 9*9 (5*2)-1
4 = 17*17 (9*2)-1
5 =	33*33 (17*2)-1
6 =	65*65 (33*2)-1

*/
#include <iostream>

using namespace std;

int main()
{
	int N;
	cin >> N;

	int x=2;

	for (int i = 0; i < N; i++)
	{
		x = (x * 2) - 1;
	}

	int c;
	c = x * x;
	cout << c;
}

9
263169

✔ 2292번 벌집

/*
*  1 = 1 = 1
   7 = 2 ~7 (6) = 2
   19 = 8 ~19 (12) = 3
   37 = 20 ~ 37 (18) = 4
   61 = 38 ~ 61 (24) = 5
*/

// 13 = 3 = 13/6(2..1)
// 14 = 3 = 14/6(2..2)
// 58 = 5 = 58/6(9..4)
// 66 = 6 = 66/6(11..0)
#include <iostream>

using namespace std;

int main()
{
	int N;

	cin >> N;
	int zz = 1;
	if (N > 1)
	{
		for (int i = 0; i < 1000000; i++)
		{
			if (N <= zz)
			{
				cout << i + 1;
				break;
			}
			zz += (6 * (i + 1));
		}
	}
	else
	{
		cout << 1;
	}
}

100
7

0개의 댓글

관련 채용 정보