#include<bits/stdc++.h>为万能头文件,包括所有头文件。
请大家根据题解与题号进行补题学习~
A 我爱敲代码 题号1909
输出签到题。
#include<bits/stdc++.h>
using namespace std;
int main()
{
cout<<"I love coding!";
}
B 报数字说英文 题号1111
选择结构。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
cin>>x;
if(x==1)
cout<<"Mon";
else if(x==2)
cout<<"Tue";
else if(x==3)
cout<<"Wed";
else if(x==4)
cout<<"Thur";
else if(x==5)
cout<<"Fri";
else if(x==6)
cout<<"Sat";
else
cout<<"Sun";
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x;
cin>>x;
switch (x) {
case 1:
cout<<"Mon";
break;
case 2:
cout<<"Tue";
break;
case 3:
cout<<"Wed";
break;
case 4:
cout<<"Thur";
break;
case 5:
cout<<"Fri";
break;
case 6:
cout<<"Sat";
break;
default:
cout<<"Sun";
break;
}
}
C 完全平方数 题号1457
循环判断。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int x;
int ans=0;
for(int i=1;i<=n;i++)
{
cin>>x;
int w=sqrt(x);//sqrt函数默认返回浮点数,所以转换成int类型进行判断
if(x==w*w)
ans++;
}
cout<<ans;
}
D 蛇形矩阵 题号1361
经典题目。
#include<bits/stdc++.h>
using namespace std;
int z[101][101];//二维数组存储矩阵
int main()
{
int n,m;
cin>>n>>m;
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
/*
四个方向
当d=0时dx[0]=0,dy[1]=1,当前坐标的x,y值分别加上dx[0],dy[0],y坐标加1,即向右移动。
当d=1时dx[1]=1,dy[1]=0,当前坐标的x,y值分别加上dx[1],dy[1],x坐标加1,即向下移动。
当d=2时dx[2]=0,dy[2]=-1,当前坐标的x,y值分别加上dx[2],dy[2],y坐标减1,即向左移动。
当d=3时dx[3]=-1,dy[3]=0,当前坐标的x,y值分别加上dx[3],dy[3],x坐标减1,即向上移动。
*/
for(int a=0,b=0,d=0,t=1;t<=n*m;t++)
{
//a,b即当前位置坐标(a,b),d=0表示初始向右移动,t用来给当前位置赋值。
z[a][b]=t;
int x=a+dx[d],y=b+dy[d];//下一位置坐标。
if(x<0||x>=n||y<0||y>=m||z[x][y])
//下一位置坐标如果在边界上或已经经过位置上则这一位置不合法,需要转方向,顺序为右下左上。
{
d=(d+1)%4;
//当d加到4时让它回到0,即从向上运动转方向到向右运动。
x=a+dx[d],y=b+dy[d];
//下一位置坐标。
}
a=x;
b=y;
//从当前位置移动到下一位置。
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<z[i][j]<<' ';
cout<<endl;
}
//输出矩阵。
return 0;
}
E 母牛问题 题号1163
根据提示上给出的计算公式,预处理答案。
再通过while多样例输入,直接输出答案。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[44];
a[1]=1,a[2]=1,a[3]=1;
for(int i=4;i<=40;i++)
a[i]=a[i-1]+a[i-3];
int n;
while(cin>>n)//多样例输入 与while(scanf("%d",&n)!=EOF)等效
cout<<a[n]<<endl;
}
F 跳远游戏 题号1360
暴力循环会时间超限。
n是奇数时,向右跳(n-1)/2+1次,向左跳(n-1)/2次。
n是偶数时,向左向右均跳n/2次。
#include<bits/stdc++.h>
using namespace std;
#define int long long//将int宏定义为long long。下面的所有int都会被识别为long long。
signed main()//main主函数的返回值必须是int,所以进行上一步后需将主函数的返回值int换成signed,
//int是signed int的简写,signed也是signed int的简写,即int与signed等价,通过这种方式规避宏定义。
{
int t;
cin>>t;
while(t--)
{
int x,y,n;
int s;//宏定义
cin>>x>>y>>n;
if(n&1)//与n%2==0等效
s=(n/2)*(x-y)+x;//n是奇数时,(int)n/2与(n-1)/2相等
else
s=n/2*(x-y);
cout<<s<<endl;
}
}
G Spike_Q的好01串 题号1910
简单思维题,无论字符串长度是多少,好01串只有0开头和1开头的两种。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
cout<<2;
}
H 总分第一 题号1204
结构体的考察,当然不用结构体也行。
无结构体版。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int mmax=0;
string ans1,ans2;
int ch,ma,en;
while(n--)
{
string id,name;
int a,b,c;
cin>>id>>name>>a>>b>>c;
int d=a+b+c;
if(d>mmax)
{
mmax=d;
ans1=id,ans2=name;
ch=a,ma=b,en=c;
}
}
cout<<ans1<<" "<<ans2<<" "<<ch<<" "<<ma<<" "<<en;
}
结构体版
#include<bits/stdc++.h>
using namespace std;
struct xuesheng{
string id;
string name;
int ch,ma,en;
}s[111];
int main()
{
int n;
int z[111];
int mmax=0,maxi;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>s[i].id>>s[i].name>>s[i].ch>>s[i].ma>>s[i].en;
z[i]=s[i].ch+s[i].ma+s[i].en;
if(z[i]>mmax)
{
mmax=z[i];
maxi=i;
}
}
cout<<s[maxi].id<<" "<<s[maxi].name<<" "<<s[maxi].ch<<" "<<s[maxi].ma<<" "<<s[maxi].en;
}
143

被折叠的 条评论
为什么被折叠?



