2021.11.26 学习总结

2021.11.26 学习总结,第1张

2021.11.26 学习总结

昨天是预备役第四天,我得改掉每次都拖到第二天才写学习总结的习惯,从今天开始要今日事今日毕。

写了六道Vitual Jusge上的题目,最大的收获是学会了蛇形填数和上三角。

蛇形填数:先确定矩阵的四个边界,在赋值完最外层边界后再往里赋值里面的子矩阵,不断循环,直到填充完整整个矩阵。

#include
#include
int main()
{
    int n,m,i,j,k=1,a,b;
    int x=0,y=n-1;
    int t[250][250]={0};
    scanf("%d",&n);
    for(x=0,y=n-1,m=n;m>0;m=m-2,y--,x++) //从右斜对角线的右上角开始,想左移动依次输出
    {                                    //例如第二次循环从t[1][n-3]开始向下移动填数
    for(a=x,b=y,i=0; i=0; i--,b--)
    {
        t[a][b] = k;
            k++;
    }
    for(a=y-1,b=x,i=m-2; i>=0; i--,a--)
    {
        t[a][b] = k;
            k++;
    }
    for(a=x,b=x+1,i=1; i 

上三角填数:先找三个边界递进的规律,每次行数的下标都是不变,加1或者减1,列数的下标都是加1,减1或者不变,那么我们就将他们存进数组单独去算递进的下标。找到以后将递增的数字赋到上面即可。

#include
#include
int a[2000][2000];
int main()
{
    int b[3][2]={{0,1},{1,-1},{-1,0}}; //每次只以递增,递减,不变三种方式递变,在此赋值累加或者累减即可
    int t,n,x,y,i,j,k=0,count;
    scanf("%d",&t);
    while(t--)
    {
        k=1;
        x=y=0;
        scanf("%d",&n);
        for(i=0; i 

昨天还把大数乘法改对了,原因是数组开小了。

#include
#include
#include
int main()
{
    char a[1000],b[1000];
    int i,j,a1[10000],b1[10000],sum[60000];
    int lensum,lena,lenb;
    gets(a);
    gets(b);
     lena = strlen(a);
     lenb = strlen(b);
    for(i=0; i=10)
        {
            sum[i+1] += sum[i]/10;
            sum[i] = sum[i]%10;
//            if(i == lensum - 1)
//                lensum++;
        } //进位,长度进行判断
    }
    for(i=lensum; i>0; i--)
    {
        if(sum[i]==0)
           continue;
        else
            break;
    }
         for(; i>=0; i--)
       {
           printf("%d",sum[i]);
        }
        printf("n");
    return 0;
}

(素筛)小笨猴的题也改对了。

#include
#include
#include
int main()
{
    int i,j,t,b[1000],count[1000];
    char a[1000];
    gets(a);
    int len = strlen(a);
    for(i=0; i<=100; i++)
    {
        b[i]=1;
    }
    b[0] = 0;
    b[1] = 0;
    for(i=2; i<=100; i++)
    {
        for(j=2*i; j<=100; j += i)
        {
            b[j] = 0; //此时所有素数等于1
        }
    }
//    for(i=0; i<=100; i++)
//    {
//        if(b[i] == 1){
//      printf("%d ",i);
//    }
//    }
    for(i=0; icount[a[i]])min = i;
    }
//        printf("%d %dn",count[a[max]],count[a[min]]);

        t = count[a[max]] - count[a[min]];
        if(b[count[a[max]] - count[a[min]]]==1) //判断是否为素数
        {
            printf("Lucky Wordn");
            printf("%d",t);
        }
        else
        {
            printf("No Answern");
            printf("0n");
        }
        return 0;
}

以上是昨天学到的东西。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5610581.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存