一.1010 一元多项式求导
使用while的循环输入,以及输出结果的格式化
#include <iostream>
using namespace std;
int main()
{
int a,b,p=1;
while(cin>>a>>b)//循环输入.
{
if(b!=0)//b为0的时候,系数和指数都是0
{
if(p==0)cout<<" ";
cout<<a*b<<" "<<b-1;
p=0;
}
}
if(p)cout<<"0 0";
return 0;
}
二.1011 A+B 和 C (15 分)
使用三目运算符 ? :
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
long long a,b,c;
cin>>a>>b>>c;
printf("Case #%d: %s\n",i+1,a+b>c?"true":"false");
}
return 0;
}
三.1012 数字分类 (20 分)(柳神的代码)
对vector的使用,以及if语句
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, num, A1 = 0, A2 = 0, A5 = 0;
double A4 = 0.0;
cin >> n;
vector<int> v[5];
for (int i = 0; i < n; i++) {
cin >> num;
v[num%5].push_back(num);
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < v[i].size(); j++) {
if (i == 0 && v[i][j] % 2 == 0) A1 += v[i][j];
if (i == 1 && j % 2 == 0) A2 += v[i][j];
if (i == 1 && j % 2 == 1) A2 -= v[i][j];
if (i == 3) A4 += v[i][j];
if (i == 4 && v[i][j] > A5) A5 = v[i][j];
}
}
for (int i = 0; i < 5; i++) {
if (i != 0) printf(" ");
if (i == 0 && A1 == 0 || i != 0 && v[i].size() == 0) {
printf("N"); continue;
}
if (i == 0) printf("%d", A1);
if (i == 1) printf("%d", A2);
if (i == 2) printf("%d", v[2].size());
if (i == 3) printf("%.1f", A4 / v[3].size());
if (i == 4) printf("%d", A5);
}
return 0;
}
四.1006 Sign In and Sign Out (25 分)
我使用了结构体,从而使,名字与时间的对应关系明了
#include <iostream>
#include <string>
using namespace std;
struct A
{
string name;
string time1;
string time2;
}n[1000];
int main()
{
int k,min=0,max=0;
cin >> k;
for (int i = 0; i < k; i++)
cin >> n[i].name >> n[i].time1>>n[i].time2;
for (int i = 1; i < k; i++)
{
if (n[min].time1>n[i ].time1)min = i;
if (n[max].time2 < n[i].time2)max = i;
}
cout << n[min].name << " "<<n[max].name;
return 0;
}
五.1008 Elevator (20 分)
使用while语句循环,if语句判断求和.
#include <iostream>
using namespace std;
int main()
{
int num[1000] = { 0 }, n, k = 0;
cin >> n;
for (int i = 0; i < n; i++)
cin >> num[i];
k = num[0] * 6 + n * 5;//没一层都要停5s,所以先给他加起来,然后在家第一次所用的时间。
int j = 0;
while (j!=n-1)
{
int a = num[j++];//前一层
int b = num[j];//后一层
if (a > b)k += (a - b) * 4;//用前一层与后一层比较,再选择是6s还是4s。
else k += (b - a) * 6;
}
cout << k;
return 0;
}