시간 | 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; } } }