C语言,答案是可以出来,但都是TEL,dalao给个方向。。。

P1319 压缩技术

bk492511 @ 2022-09-05 13:25:51

看别人的答案,感觉大家都不用c,看c++看不懂。。。 我自己试着优化了几下,感觉是算法的问题, 我先放代码奥


#include <stdio.h>

int A[40010]={};//这是不是得开到40000奥,我蒙的,200*200

void print(int a,int* p,int b)
{
    int cir=0;
    for(cir=0;cir<a;cir++)
    {
        printf("%d",b);
        *p=*p+1;
        if((*p)%7==0)
        {
            printf("\n");
        }
    }
}

int main()
{
    int a=0,cir=0,count=0,tmp=0;
    scanf("%d",&a);//我这边这个a不知道和后面联系起来,我是用的getchar捕获的有多少次数据输入,然后输出的
    for(cir=0;(getchar()!='\n');cir++)
    {
        scanf("%d",&A[cir]);
        count++;
    }
    for(cir=0;cir<count;cir++)
    {
        print(A[cir],&tmp,cir%2);//第二个参是控制每多少个换行的,
    }
    return 0;
}

by PanDaoxi @ 2022-09-05 14:41:53

早期我的程序是这样的:

// Author:PanDaoxi
#include <iostream>
using namespace std;
int a[40201];
int main(){
    int n,m,text=1,tmp=1,t;
    cin>>m;
    while(cin>>n){
        text-=1,text*=-1;
        t=tmp,tmp+=n;
        for(int i=t;i<tmp;i++){
            a[i]=text;
        }
    }
    for(int i=1;i<=m*m;i++){
        cout<<a[i];
        if(i%m==0) cout<<endl;
    }
    return 0;
}

加油,你能过的


by bk492511 @ 2022-09-05 19:23:05

@PanDaoxi 前辈之言,我必将砥砺奋进


by PanDaoxi @ 2022-09-06 08:02:11

@bk492511 az,我也是一个蒟蒻……一起加油叭~


by 冰颜布偶喵 @ 2022-09-11 13:41:26

#include<iostream>
using namespace std;
int n;
int a,ans=0,k=0;
int main()
{
    cin>>n;
    while(cin>>a)
    {

        for(int i=a;i>=1;i--)
        {
            k++;
            cout<<ans;
            if(k==n)
            {
                cout<<"\n";
                k=0;
            }
        }
        ans=1-ans;//变换输出的“0”||“1”
    }
    return 0;
}

这是我的


|