足以应付一切的水仙花数,字母交叉问题,数组排序去重复,今天get到一点点,首先一道题莫名其妙地改对了然后明白了自己思路是对的但是不会写代码 还是什么用都没有

最大公约数,最小公倍数,有个博客写得棒棒的,大家可以看下,我最喜欢穷举法也就是暴力破解 法,送上今天代码还有昨天。

首先水仙花数

 #include<stdio.h>
int main()
{
    int m,n,i,a,b,c,j,k;
    int result[50];
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        j=0;
        for(i=m; i<=n; i++)
        {
            a=i/100;
            b=i/10%10;;
            c=i%10;
            if(a*a*a+b*b*b+c*c*c==i)
            {
                if(j==0)
                    printf("%d",i);
                else
                    printf(" %d",i);
                j++;

            }
        }

        if(j==0)
            printf("no\n");
        else
             printf("\n");
    }
}
我不会解决的问题是如果一个范围内没有输出none后来才想到可以用计数,但是这个代码还是有点看不懂,我看得懂的提交到acm上格式又不对,去他的格式错误,,,,

然后下面是今天学到的是数组去重,想用桶排做但是我只知道有桶排这个东西,具体怎么写还是不会,这个是先冒泡再去重比较简单也都会写,就是并没有什么用,格式错误还是去他的格式错误,每次非要把我看得懂的变成看不懂的。很好看的代码就是有末尾空格而已,,,

 #include<stdio.h>
int main()
{
    int n,i,j,t,k;
    k=0;
    int a[1000];
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    for(j=0; j<n-1; j++)
    {
        for(i=0; i<n-1-j; i++)
        {
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        }
    }
    for(i=0; i<n; i++)
    {
        if(a[i]!=a[i+1])
            k++;
    }
    printf("%d\n",k);

    for(i=0;i<n;i++)
    {
        if(a[i]!=a[i+1])
    {
        printf(" %d",a[i]);
    }

    }
    return 0;
}
最后是自己莫名其妙改对的代码:

#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,k,o;
    char a[100],b[100];
    scanf("%s%s",a,b);
    int len1=strlen(a);
    int len2=strlen(b);
    if(len1==len2)
    {
        for(i=0;i<len1;i++)
        {
            printf("%c%c",a[i],b[i]);
        }
    }
    else if(len1>len2)
    {
         o=len1-len2-2;
        for(j=0;j<o;j++)
        {
            printf("%c%c",a[j],b[j]);
        }
        for(k=o;k<len1;k++)
        {
            printf("%c",a[k]);
        }


    }


    else
    {
        o=len2-len1-2;
        for(j=0;j<o;j++)
        {
            printf("%c%c",a[j],b[j]);
        }
        for(k=o;k<len2;k++)
        {
            printf("%c",b[k]);
        }


    }
}这个是字母交叉,例如输入abcd       1234  得输出a1b2c3d4 字符串长度不等情况下例如 banana   12 输出  b1a2nana

代码被我写得复杂点但是好歹是自己写的,好歹莫名其妙对了,题目就随风飘荡,看我之前一个帖子吧,刷题是最简单的事。就想当个程序员,加油,争取明天刷完19道就再也不用刷了,我喜欢计算机喜欢程序,因为在它世界里是最公平也是最简单最残忍,没有步骤分只看结果,只有0和1,只要有输入期待输出就会有输出哪怕是乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值