第一题:
如果b+t超过六十分钟就代表a要加1,放在while循环里直至b+t小于60即可算出对应的时、分。加一个if,限制a的范围(不存在25点以及更大的数)。
#include<bits/stdc++.h>
using namespace std;
int main(){
int a, b, t;
cin >> a >> b >> t;
b += t;
while (b >= 60) {
b -= 60;
a++;
if (a >= 24){
a -= 24;
}
}
cout << a << endl << b;
return 0;
}
第二题:
题意简单,双重循环算出每个元素下标之差与每个元素之间的差之和,再用max函数不断更新ans的值即可。
#include <bits/stdc++.h>>
using namespace std;
int a[10010];
int dis,ans;
int main()
{
int n;
cin >> n;
for(int i=0;i<n;i++){
cin >> a[i];
}
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
dis = abs(i-j) + abs(a[i] - a[j]);
ans = max(ans,dis);
}
}
cout << ans;
return 0;
}
有不足的地方大家可以指正。