| 시간 | 2021년 5월 27일 목요일 20:30 ~ |
| 장소 | Google Meet |
| 참가자 |
두 수의 사칙연산을 수행하는 프로그램 작성하기
출력
출력 예시
1 + 3.5 = 4.5 20 * 2.1 = 42 2 / 0 0으로 나눌 수 없습니다. 1.5 % 6.7 정의되지 않은 연산입니다.
코드
#include <iostream>
using namespace std;
int main() {
double a, b;
char c;
while (true) {
cin >> a >> c >> b;
if (c == '+') cout << "= " << a + b << endl;
else if (c == '-') cout << "= " << a - b << endl;
else if (c == '*') cout << "= " << a * b << endl;
else if (c == '/') {
if (b == 0) cout << "0으로 나눌 수 없습니다." << endl;
else cout << "= " << a / b << endl;
}
else {
cout << "정의되지 않은 연산입니다.";
return 0;
}
지수 연산을 수행하는 함수 작성하기
출력
출력 예시
3 ^ 4 = 81 2 ^ -3 = 0.125 5.2 ^ 0 = 1
코드
#include <iostream>
using namespace std;
double power(double a, int n) {
if (n == 0) return 1;
else if (n < 0) return 1 / power(a, -n);
else return a * power(a, n - 1);
}
int main() {
double a, b;
char c;
while (true) {
cin >> a >> c >> b;
if (c == '^') cout << "= " << power(a, (int)b) << endl;
else return 0;
}
}
입력한 순서대로 계산하는 프로그램 작성하기
출력
출력 예시
1.5 = 1.5
3 / 2 – 1 * 5 = 2.5
5 / 0 + 3 = 0으로 나눌 수 없습니다.
6 % 4 = 정의되지 않은 연산입니다.
코드
#include <iostream>
using namespace std;
int main() {
double num = 0, ans = 0;
char op;
bool DIVIDED_BY_0 = false;
cin >> num;
ans = num;
while (true)
{
cin >> op;
if (op == '=') {
if (DIVIDED_BY_0 == true) {
cout << "0으로 나눌 수 없습니다." << endl;
DIVIDED_BY_0 = false;
}
else cout << ans;
return 0;
}
cin >> num;
if (op == '+')
ans += num;
else if (op == '-')
ans -= num;
else if (op == '*')
ans *= num;
else if (op == '/') {
if (num == 0) DIVIDED_BY_0 = true;
else ans /= num;
}
else {
cout << "정의되지 않은 연산입니다.";
return 0;
}
}
}
입력한 순서대로 계산하는 프로그램 작성하기
출력
출력 예시
1 + 2 ^ 3 = 27
3 / 2 – 1 * 5 = 2.5
5 / 0 + 3 = 0으로 나눌 수 없습니다.
6 % 4 = 정의되지 않은 연산입니다.
코드
#include <iostream>
using namespace std;
double power(double a, int n) {
if (n == 0) return 1;
else if (n < 0) return 1 / power(a, -n);
else return a * power(a, n - 1);
}
int main() {
double num = 0, ans = 0;
char op;
bool DIVIDED_BY_0 = false;
cin >> num;
ans = num;
while (true)
{
cin >> op;
if (op == '=') {
if (DIVIDED_BY_0 == true) {
cout << "0으로 나눌 수 없습니다." << endl;
DIVIDED_BY_0 = false;
}
else cout << ans;
return 0;
}
cin >> num;
if (op == '+')
ans += num;
else if (op == '-')
ans -= num;
else if (op == '*')
ans *= num;
else if (op == '/') {
if (num == 0) DIVIDED_BY_0 = true;
else ans /= num;
}
else if (op == '^')
ans = power(ans, (int)num);
else {
cout << "정의되지 않은 연산입니다.";
return 0;
}
}
}
입력한 순서대로 계산하는 프로그램 작성하기
출력
출력 예시
17 = 17 1 + 2 ^ 3 = 27 3 / 2 – 1 * 5 = 2.5 5 / 0 + 3 = 0으로 나눌 수 없습니다. 6 % 4 = 정의되지 않은 연산입니다.
코드
#include <iostream>
using namespace std;
double power(double a, int n) {
if (n == 0) return 1;
else if (n < 0) return 1 / power(a, -n);
else return a * power(a, n - 1);
}
int main() {
double num = 0, ans = 0;
char op;
bool DIVIDED_BY_0 = false;
cin >> num;
ans = num;
while (true)
{
cin >> op;
if (op == '=') {
if (DIVIDED_BY_0 == true) {
cout << "0으로 나눌 수 없습니다." << endl;
DIVIDED_BY_0 = false;
}
else cout << ans << endl;
cin >> num;
ans = num;
continue;
}
cin >> num;
if (op == '+')
ans += num;
else if (op == '-')
ans -= num;
else if (op == '*')
ans *= num;
else if (op == '/') {
if (num == 0) DIVIDED_BY_0 = true;
else ans /= num;
}
else if (op == '^')
ans = power(ans, (int)num);
else {
cout << "정의되지 않은 연산입니다.";
return 0;
}
}
}
팩토리얼을 계산하는 함수를 작성하기
출력
출력 예시
5 ! = 120
코드
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0) return 1;
else return n * factorial(n - 1);
}
int main() {
int num;
char op;
while (true) {
cin >> num >> op;
if (op == '!') cout << "= " << factorial(num) << endl;
else return 0;
}
}
입력한 순서대로 계산하는 프로그램 작성하기
출력
출력 예시
1.5 = 1.5 1 + 2 ^ 3 = 27 4 / 2 * 3 ! = 720 5 / 0 + 3 = 0으로 나눌 수 없습니다. 6 % 4 = 정의되지 않은 연산입니다.
코드
#include <iostream>
using namespace std;
double power(double a, int n) {
if (n == 0) return 1;
else if (n < 0) return 1 / power(a, -n);
else return a * power(a, n - 1);
}
int factorial(int n) {
if (n == 0) return 1;
else return n * factorial(n - 1);
}
int main() {
double num, ans = 0;
char op;
bool DIVIDED_BY_0 = false;
cin >> num;
ans = num;
while (true)
{
cin >> op;
if (op == '=') {
if (DIVIDED_BY_0 == true) {
cout << "0으로 나눌 수 없습니다." << endl;
DIVIDED_BY_0 = false;
}
else cout << ans << endl;
cin >> num;
ans = num;
continue;
}
if (op == '!') {
ans = factorial((int)ans);
continue;
}
cin >> num;
if (op == '+')
ans += num;
else if (op == '-')
ans -= num;
else if (op == '*')
ans *= num;
else if (op == '/') {
if (num == 0) DIVIDED_BY_0 = true;
else ans /= num;
}
else if (op == '^')
ans = power(ans, (int)num);
else {
cout << "정의되지 않은 연산입니다.";
return 0;
}
}
}