- 8:30-9:00 看了会啊哈算法
- 10:10-11:50 上程序设计基础实验,做的实验是有关一维数组,二维数组以及字符数组的应用这次实验加强了我们对于数组的熟练度。
- 13:00-13:40 刷题
- 14:30-16:10 上计算机应用基础实验,主要讲了excel的相关知识。
- 17:00-18:00 看指针的课程。
- 19:00-20:00 看啊哈算法
- 20:00-20:30 刷题
- 20:30-22:00 听学长讲课
- 23:00-00:00 刷题
- 今天学长讲的是我们字符串里面的G 题和I题
- 其中G题的题目:
而这道题我们可以发现一个规律,当n为多少上,我们这个方向就要转几次,而且第m次方向转变,其取余是相等的,例如第一次和第四次,他们的取余都是。所以我们可以定义一个数组变量来记录这个规律,在这儿学长定义的是int book[3][2]={(0,1),(1,-1),(-1,0)。然后应用循环再应用数组相关的知识来解出这道题,这里还有一个地方要注意就是最后输出的时候是数和数之间才有空格,还有最后一行也必须要换行(比较细节的地方)上学长的代码:
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
const int N=1e3+10;
int a[N][N];
int book[3][2]= {{0,1},{1,-1},{-1,0}};
int main()
{ int n,t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int x=1;
int tx,ty;
tx=ty=0;
for(int i=0; i<n; i++)
{
int count=n-i;
for(int j=0; j<count; j++)
{
tx+=book[i%3][0];
ty+=book[i%3][1];
a[tx][ty]=x++;
}
}
for(int i=0; i<n; i++)
{
for(int j=1; j<=n-i; j++)
if(j!=n)
printf("%d ",a[i][j]);
else
printf("%d",a[i][j]);
printf("\n");
}
printf("\n");
}
}
在这里不得不说明,学长的这个代码的确比较方便简洁。
2:还有一个就是I题
这道题也是有他的巧妙之处 ,子串k的话就比第0个和第k个是否相等,第1个和第k+1个数是否相等.....以此类推。还有那个‘?’可以看除了?之外的1的总数和0的总数,比较其数量,再看‘?’变为0还是1。代码没有 自己想哦咳咳咳
- 明天也加油