C++信息学奥赛一本通-第一部分-基础一-第3章-第2节
2057 星期几
#include <iostream>using namespace std;int main() {int day; cin >> day;switch (day) {case 1:cout << "Monday";break;case 2:cout << "Tuesday";break;case 3:cout << "Wednesday";break;case 4:cout << "Thursday";break;case 5:cout << "Friday";break;case 6:cout << "Saturday";break;case 7:cout << "Sunday";break;default:cout << "input error!";break;}return 0;
}
2058 简单计算器
#include <iostream>using namespace std;int main() {double num1, num2; char op; cin >> num1 >> num2 >> op;if (op == '/' && num2 == 0) printf("Divided by zero!");else {switch (op) {case '+':cout << num1 + num2;break;case '-':cout << num1 - num2;break;case '*':cout << num1 * num2;break;case '/':cout << num1 / num2;break;default:cout << "Invalid operator!";break;}}}
2059 买笔
#include <iostream>using namespace std;int main() {int price; cin >> price;int result = price % 4;if (price < 4) cout << "0 0 0";else{switch (result) {case 0 :cout << 0 << " " << 0 << " "<< price / 4;break;case 1 :cout << 0 << " " << 1 << " " << price / 4 - 1;break;case 2:case 3:cout << 1 << " " << 0 << " " << price / 4 - 1;break;}}
}
1049 晶晶赴约会
#include <iostream>using namespace std;int main() {int day; cin >> day;switch (day) {case 1:case 3:case 5:cout << "NO";break;default:cout << "YES";break;}
}
1050 骑车与走路
#include <iostream>using namespace std;int main() {double distance; cin >> distance;double time_of_bike = distance / 3.0 + 50.0;double time_of_walk = distance / 1.2;if (time_of_bike < time_of_walk) cout << "Bike";else if (time_of_bike > time_of_walk) cout << "Walk";else cout << "All";}
1051 分段函数
#include <iostream>
using namespace std;int main() {double x; cin >> x;if (x >= 0 && x < 5) {printf("%.3f", 2.5 - x);} else if (x >= 5 && x < 10) {printf("%.3f", 2 - 1.5 * (x - 3) * (x-3));} else {printf("%.3f", x / 2 - 1.5);}
}
1052 计算邮资
#include <cmath>
#include <iostream>using namespace std;int main() {double weight; char way; cin >> weight >> way;int result = 8;if (weight > 1000)result += ceil((weight - 1000) / 500.0) * 4;if (way == 'y') result += 5;cout << result;
}
1053 最大数输出
#include <iostream>
#include <algorithm>using namespace std;int main() {int nums[3]; cin >> nums[0] >> nums[1] >> nums[2]; sort(nums, nums + 3);cout << nums[2] << " " << nums[1] << " " << nums[0] << endl;
}
1054 三角形判断
#include <iostream>
using namespace std;
int main() {int a, b, c; cin >> a >> b >> c;if (a + b > c && a + c > b && b + c > a) cout << "yes";else cout << "no";
}
1055 判断闰年
#include <iostream>
using namespace std;
int main() {int year; cin >> year;if (year % 400 == 0 || year % 100 != 0 && year % 4 == 0) cout << "Y";else cout << "N";
}
1056 点和正方形的关系
#include <iostream>
using namespace std;
int main() {int x, y; cin >> x >> y;if (abs(x) <= 1 && abs(y) <=1) cout << "yes";else cout << "no";
}
1057 简单计算器
#include <iostream>using namespace std;int main() {int num1, num2; char op; cin >> num1 >> num2 >> op;if (op == '/' && num2 == 0) printf("Divided by zero!");else {switch (op) {case '+':cout << num1 + num2;break;case '-':cout << num1 - num2;break;case '*':cout << num1 * num2;break;case '/':cout << num1 / num2;break;default:cout << "Invalid operator!";break;}}
}
1058 求一元二次方程
#include <cmath>
#include <iostream>using namespace std;int main() {double a, b, c; cin >> a >> b >> c;double delta = pow(b, 2) - 4 * a * c;if (delta > 0 ) {double x1 = (pow(delta, 0.5) - b) / (2 * a);double x2 = (-pow(delta, 0.5) - b) / (2 * a);printf("x1=%.5f;x2=%.5f", min(x1, x2), max(x1,x2));} else if (delta == 0 ) {printf("x1=x2=%.5f",(pow(delta, 0.5) - b) / (2 * a));}else cout << "No answer!";
}