题目描述
输入描述:
输入的第一行包含两个整数n和t表示小数(含小数点)的长度以及四舍五入的次数。
第二行为一个字符串表示qdgg的初始分数。
输出描述:
一行表示qdgg能得到的最高分数(请勿输出尾零)
输入描述:
第一行是样例数T
第2到2+T-1行每行有一个整数n(n<=80),描述每个样例中的n。
输出描述:
对于每个样例输出对应的方法数
include
using namespace std;
long long a[90];
int main()
{
a[0] = 1;
a[1] = 1;
int n;
cin >> n;
for(int i = 2;i <= 80;i ++)
{
a[i] = a[i-1] + a[i-2];
}
while(n --)
{
int x;
cin >> x;
cout << a[x] << endl;
}
}
题目描述
输入描述:
两个正整数,用“:”隔开,表示小时和分钟,保证输入时间合法。
输出描述:
两行,两个时刻(不含前导0),用“:”隔开,表示上一个时刻和下一个时刻
include
using namespace std;
int main() {
int a, b, A, B;
scanf("%d:%d", &a, &b);
A = a, B = b;
while (true) {
b--; //找之前的时间
if (b < 0) //回到上个小时
a--;
b = (b + 60) % 60; //防止负数
a = (a + 24) % 24;
if (a % 10 == b / 10 && b % 10 == a / 10) {//回文
printf("%d:%d\n", a, b);
break;
}
}
while (true) {
B++; //找之后的时间
if (B == 60) //去到下个小时
A++;
B = (B + 60) % 60;
A = (A + 24) % 24;
if (A % 10 == B / 10 && B % 10 == A / 10) {
printf("%d:%d\n", A, B);
break;
}
}
return 0;
}
这个题没有要求输出前导0,如果要输出前导0,可以用%02d(宽度为2,左端补0)
题目描述
输入描述:
第一行一个整数n,表示有n只妖精下一行n个数ai,表示每只妖精飞行高度
输出描述:
输出一行,一个整数表示答案
include
using namespace std;
const int N=1010;
int a[N];
int main()
{
int n,max1=0,b=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
a[n+1]=1001;
for(int i=1;i<=n;i++)
{
int j=0;
while(a[i]+1==a[i+1]&&a[i]-a[i-1]==1)//双指针算法
{ //这里要用while 而不是if
j++;
i++;
}
max1=max(max1,j);//取最大值
}
printf("%d",max1);
return 0;
}
Problem - 1777A - Codeforces
cf的题就是妙,有的不能按它的字面意思来写
如果这样写,会爆掉
因为a[i+1]*=a[i]不合适
include
using namespace std;
const long long N=100010;
long long a[N];
int main()
{
long long t;
cin>>t;
while(t--){
long long n,num=0;
cin>>n;
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
for(long long i=0;i<n-1;i++)
{
if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1)
{
num++;
a[i+1]*=a[i];
}
}
cout<<num<<endl;
}
}
正确解法
include
using namespace std;
const long long N=100010;
long long a[N];
int main()
{
long long t;
cin>>t;
while(t--){
long long n,num=0;
cin>>n;
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
for(long long i=0;i<n-1;i++)
{
if(a[i]%2==0&&a[i+1]%2==0||a[i]%2==1&&a[i+1]%2==1)
{
num++;
//a[i+1]*=a[i];
}
}
cout<<num<<endl;
}
}
Code over!