没有原理的编程不要写

代码错误,这个代码刚开始编写的时候,自以为算法是准确的,结果没有什么依据,之后才改了过来。

先看看问题

没有原理的编程不要写

这是我刚开始写的代码

#include<stdio.h>

int main()
{
    int t,n,temp,j,flag1,i,flag2,sum=1;

    scanf("%d",&t);

    while(t--)
    {
        int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

        scanf("%d",&n);

        for(i=1;i<=n-1;i++)
        {

            for(j=i+1;j<=n-1;j++)
            {
                flag1=a[i];
                flag2=a[j];
                while(flag2!=0)
                {

                    temp=flag1%flag2;
                    flag1=flag2;
                    flag2=temp;
                }
                a[i]/=flag1;
                if(a[i]==1)
                    break;

            }
        }
        for(i=0;i<=n-1;i++)
        {
            sum=sum*a[i];
        }
        printf("%d\n",sum);
        sum=1;

    }
}

这是我之后查完之后写的(就是俩个数俩个数的求最小公倍数)

#include<stdio.h>

int function(long int a,long int b)
{
    int c;
    while(b!=0)
    {
        c=a%b;
        a=b;b=c;
    }
    return a;
}

int main()
{
    long int i,t,n,sum=1;

    scanf("%ld",&t);

    while(t--)
    {
        scanf("%ld",&n);
        for(i=2;i<=n;i++)
            sum=sum/function(sum,i)*i;
        printf("%ld\n",sum);
        sum=1;
    }
    return 0;
}

之后写代码的时候,没有原理的代码不要写,除非完全没有什么原理,就想啥写啥,如果代码动起来了,就不要动他了,毕竟,编程第一原则
:如果我的代码以一种我无法理解的方式运行起来了,那就不要再动了。

上一篇:【编译原理笔记20】代码生成:代码生成器的主要任务,一个简单的目标机模型,指令选择,寄存器的选择,寄存器选择函数getReg的设计,窥孔优化


下一篇:ldconfig命令的作用