https://www.completerehabsolutions.com/blog/klnc066g11u Alprazolam Australia Online 문제 <- 클릭
Mexico Xanax Buy Online
와우~ 이거 재미 있는데 ㅎㅎㅎ 레벨은 2인데 크게 어렵지는 않은듯.. https://transculturalexchange.org/gd1m4m02yk
작동은 잘 되는데 출력 형태가 맘에 안든다고 로봇님이 그래서 출력 부분은 책을 좀 참고 ㅎㅎ
https://eloquentgushing.com/fe2d5i4
https://aiohealthpro.com/w57qbi6 #include
#include
using namespace std;
class Memory {
private:
int val;
public:
Memory() :
val(0) {
}
int getVal() {
return val;
}
void getArg(int * arg) {
arg[0] = val / 100;
arg[1] = (val / 10) % 10;
arg[2] = val % 10;
}
Memory& operator+=(const int& rhs) {
val += rhs;
if (val > 999)
val %= 1000;
return *this;
}
Memory& operator+=(const Memory& rhs) {
*this += rhs.val;
return *this;
}
Memory& operator*=(const int& rhs) {
val *= rhs;
if (val > 999)
val %= 1000;
return *this;
}
Memory& operator*=(const Memory& rhs) {
*this *= rhs.val;
return *this;
}
Memory& operator=(const Memory& rhs) {
val = rhs.val;
return *this;
}
Memory& operator=(const int& inVal) {
val = inVal;
return *this;
}
};
class Interpreter {
private:
Memory registers[10];
Memory ram[1000];
int counter;
public:
Interpreter() :
counter(0) {
}
void reset() {
for (int i = 0; i < 10; i++)
registers[i] = 0;
for (int i = 0; i < 1000; i++)
ram[i] = 0;
counter = 0;
}
void input(char* command) {
ram[counter++] = atoi(command);
}
int execute() {
bool doing = true;
int addr = 0;
int arg[3];
int numberOfExecuted = 0;
while (doing) {
ram[addr].getArg(arg);
addr++;
numberOfExecuted++;
switch (arg[0]) {
case 0:
if (registers[arg[2]].getVal() != 0)
addr = registers[arg[1]].getVal();
break;
case 1:
doing = false;
break;
case 2:
registers[arg[1]] = arg[2];
break;
case 3:
registers[arg[1]] += arg[2];
break;
case 4:
registers[arg[1]] *= arg[2];
break;
case 5:
registers[arg[1]] = registers[arg[2]];
break;
case 6:
registers[arg[1]] += registers[arg[2]];
break;
case 7:
registers[arg[1]] *= registers[arg[2]];
break;
case 8:
registers[arg[1]] = ram[registers[arg[2]].getVal()];
break;
case 9:
ram[registers[arg[2]].getVal()] = registers[arg[1]];
break;
}
}
return numberOfExecuted;
}
};
int main() {
Interpreter inter;
int numberOfCase;
char command[10];
cin >> numberOfCase;
gets(command);
gets(command);
for (int caseTime = 0; caseTime < numberOfCase; caseTime++) {
for (int i = 0; gets(command) && *command; ++i) //입력부분은 에러나서 책 참고
inter.input(command);
if (caseTime > 0)
putchar('n');
cout << inter.execute() << endl; //출력하고
inter.reset(); //리셋하기
}
return 0;
}
연산자 오버로딩하니 더 읽기가 깔끔하네요. 흐..전 걍 Get, Set으로 했는데, 저게 더 보기 좋은 것 같습니다.
https://inteligencialimite.org/2024/08/07/nkuregqm7https://nedediciones.com/uncategorized/tzcsmj9 왠지 연산자 오버로딩을 써먹을 수 있는 기회 같아서 사용해 보았습니다 ^^ 감사합니다.
https://solomedicalsupply.com/2024/08/07/dbsvxpw5https://homeupgradespecialist.com/nz56jnxq 문제 링크 : http://uva.onlinejudge.org/external/100/10033.html 응시 유저 수 : 3002 해결한 유저 비율 :68.79% 예전에 배웠던 어셈블리 생각이 나는 문제다. 문제에 적힌 대로 instruction들을 차례대로 RAM에 적재하고 나서 program counter를 0에서부터 진행하면 된다. 점프할 때 점프하고. 빈 줄 처리를 위해 getline()을 사용했다. 이렇게 되면 instruction을 in..