1.有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。
样例输入 Copy
11/12/1999 10/21/2003 10/22/2003 02/12/2004 11/30/2005 12/31/2005
样例输出 Copy
11/12/1999 10/21/2003 10/22/2003 02/12/2004 11/30/2005 12/31/2005
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;struct Date {int month;int day;int year;
};bool compareDate(Date d1, Date d2) {if (d1.year < d2.year) {return true;}else if (d1.year == d2.year && d1.month < d2.month) {return true;}else if (d1.year == d2.year && d1.month == d2.month && d1.day < d2.day) {return true;}else {return false;}
}int main() {vector<Date> dates;//int n; // n为日期的数量//scanf("%d", &n);//for (int i = 0; i < n; i++)Date date;int n=0;while( scanf("%d/%d/%d", &date.month, &date.day, &date.year)!=EOF){n++;dates.push_back(date);}sort(dates.begin(), dates.end(), compareDate);for (int i = 0; i < n; i++) {printf("%02d/%02d/%04d\n", dates[i].month, dates[i].day, dates[i].year);}return 0;
}
2.
输入
求组合数的数据都是成对(M与N)出现的,每对整数M和N满足0<m, n≤20,以EOF结束。
输出
输出该组合数。每个组合数换行。
样例输入 Copy
5 2 18 13
样例输出 Copy
10 8568
#include <iostream>
using namespace std;long long C(int m, int n) {long long res = 1;for (int i = 1; i <= n; i++) {res = res * (m - i + 1) / i;}return res;
}int main() {int m, n;while (cin >> m >> n) {cout << C(m, n) << endl;}return 0;
}