오늘은 백준 알고리즘 8단계 일반 수학 1 문제들을 일부 풀어 볼 것이다
#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
문제를 풀고있었는데 갑자기 노트북이 고장났다..
피시방으로 와서 이어서 풀어본다..ㅎㅎ
#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
#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
/*
* 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
/*
* 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