裁纸刀
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a;
a=4+19+20*21;
printf("%d",a);
// 请在此输入您的代码
return 0;
}
刷题统计
#include <iostream>
using namespace std;
int main()
{
int a,day=0;
int b,n;
scanf("%d %d %d",&a,&b,&n);
int k;
k=n%(5*a+2*b);
day=n/(5*a+2*b);
if(k==0)
printf("%d",day*7);
else if(k>5*a){
int m=k-5*a;
if(m%b==0)
printf("%d",day*7+5+(k-a*5)/b);
else printf("%d",day*7+5+(k-a*5)/b+1);
}
else if(k%a==0)
printf("%d",day*7+k/a);
else printf("%d",day*7+k/a+1);
// 请在此输入您的代码
return 0;
}
这样写的通过率只有百分之六十,没有考虑到测试数据取值范围
改后为
#include <iostream>
using namespace std;
int main()
{
long a,day;
long b,n;
scanf("%ld %ld %ld",&a,&b,&n);
long k;
k=n%(5*a+2*b);
day=n/(5*a+2*b);
if(k==0)
printf("%ld",day*7);
else if(k>5*a){
int m=k-5*a;
if(m%b==0)
printf("%ld",day*7+5+m/b);
else printf("%ld",day*7+5+m/b+1);
}
else if(k%a==0)
printf("%ld",day*7+k/a);
else printf("%ld",day*7+k/a+1);
// 请在此输入您的代码
return 0;
}
修树
#include <stdio.h>
#include <stdlib.h>
int max(int a,int b){
if(a>b)
return a;
else return b;
}
int main(int argc, char *argv[])
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int m;
m=max(2*i-2,2*(n-i));
printf("%d\n",m);
}
// 请在此输入您的代码
return 0;
}
一开始不理解为什么是2*i-2与2*(n-i),后来请教之后才明白是将树为中心左右两边的数和,看哪边的比较大即max为多少。