签到 :
#include
using namespace std;
int main()
{
int n;
scanf("%d",&n);
if(n>=2018)printf("What?\n");
else printf("I know\n");
return 0;
}
打印图形 ,上下折半分别处理,for 循环实现,数一下 每一行的 空格 的数目与 “ * ” 的数目 与对应行的下标之间的规律即可。
#include
using namespace std;
int n;
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n-i; j++)printf(" ");
printf("*");
for(int j=1; j<=2*i-3; j++)printf(" ");
if(i!=1)printf("*");
printf("\n");
}
for(int i=n-1; i>=1; i--)
{
for(int j=1; j<=n-i; j++)printf(" ");
printf("*");
for(int j=1; j<=2*i-3; j++)printf(" ");
if(i!=1)printf("*");
printf("\n");
}
return 0;
}
数据 :1 <= l <= r <= 100
可以直接枚举因子判断是否是素数(注意特判 1)。
#include
using namespace std;
int n,m,tp,l,r;
int main()
{
while(~scanf("%d%d",&l,&r))
{
int ans=0;
for(int i=l; i<=r; i++)
{
bool flag=0;
if(i==1)flag=1;
for(int j=2; j<=sqrt(i); j++)
if(i%j==0)flag=1;
if(!flag)
{
tp=i;
while(tp)
{
ans+=tp%10;
tp/=10;
}
}
}
printf("%d\n",ans);
}
return 0;
}
注意数据类型 ,选择自己喜欢的排序实现即可
#include
using namespace std;
struct node
{
int x,y;
double z;
bool operator < (const node &c)const
{
return z>c.z;
}
} a[1234];
int main()
{
int n,k;
double c,d;
scanf("%d%d",&n,&k);
for(int i=0; i
由于数字都不同可以唯一确定 某个数的位置。查找其位置,
坐标(x1, y1)的 i 点与坐标(x2, y2)的 j 点的 曼哈顿距离 为:
d(i,j) = |X1-X2| + |Y1-Y2|.
#include
using namespace std;
int n,m,x,y,a[123][123],xx;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==1)x=i,y=j;
}
scanf("%d",&xx);
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
{
if(xx==a[i][j])
{
printf("%d\n",abs(i-x)+abs(j-y));
return 0;
}
}
return 0;
}
直接预处理存储四个名字 ,遍历统计计数即可。
#include
using namespace std;
int a[5],len;
string s[5]= {"Nephren","Ithea","Rhantolk","Nopht"},str;
int main()
{
cin>>str;
len=str.size();
for(int i=0; i
按照题目要求函数实现即可:
#include
using namespace std;
int n,m;
int cal(int x,int y)
{
if(x*y<=7)return x*y;
else if(x>=0&&y>=0)return cal(x-2,cal(x-1,y-1));
else if(m<0||n<0)return 1;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
printf("%d\n",cal(n,m));
}
return 0;
}
模拟,可以 循环实现,使用队列方便一点
#include
using namespace std;
#define maxn 12
int ans;
mapjian;
struct node
{
string str;
double xue,gong,fang,su;
int big;
bool operator<(const node &c)const
{
return bigque;
priority_queueq;
for(int i=0; i<4; i++)
{
cin>>data[i].ss>>data[i].xue>>data[i].gong>>data[i].fang>>data[i].su>>data[i].dao;
que.push(data[i]);
}
for(int i=6; i>=0; i--)
{
cin>>b[i].su;
b[i].big=i;
}
b[6].xue=2333,b[6].gong=100,b[6].fang=7;
b[5].xue=600,b[5].gong=34,b[5].fang=4;
b[4].xue=200,b[4].gong=24,b[4].fang=3;
b[3].xue=400,b[3].gong=43,b[3].fang=9;
b[2].xue=500,b[2].gong=34,b[2].fang=3;
b[1].xue=1100,b[1].gong=65,b[1].fang=6;
b[0].xue=1400,b[0].gong=90,b[0].fang=2;
for(int i=6; i>=0; i--)
q.push(b[i]);
while(1)
{
tp=que.front();
que.pop();
cp=q.top();
q.pop();
if(tp.sucp.su)
{
cp.xue-=(tp.gong+jian[tp.dao]-cp.fang)*2;
tp.xue-=(cp.gong-tp.fang);
}
else
{
cp.xue-=(tp.gong+jian[tp.dao]-cp.fang);
tp.xue-=(cp.gong-tp.fang);
}
if(cp.xue>0)q.push(cp);
if(tp.xue>0)que.push(tp);
ans++;
if(q.size()==0)
{
flag=1;
break;
}
if(que.empty())
{
flag=0;
break;
}
}
if(flag)
printf("%d\n",ans);
else printf("BOOM!\n");
return 0;
}