• 《算法竞赛入门经典》第一章精选


    例1-2 三位数反转

      题目:程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7;输入740,输出应该是47。

      分析:用%10可以得到个位数,用/10%10可以得到十位数,用/100可以得到百位数。

      输入样例:

      123

      输出样例:
      321

      源码

    #include<stdio.h>
    
    int main()
    {
        int n,a,b,c;
        scanf("%d",&n);
        a=n/100;    //原百位
        b=n/10%10;  //原十位
        c=n%10;     //原个位
        printf("%d",c*100+b*10+a);
        return 0;
    }

      另一种:

    #include<stdio.h>
    
    int main()
    {
        int n;
        scanf("%d",&n);
        if(n%100==0)            //末尾两个0
            printf("%d",n/100);
        else if(n%10==0)        //末尾一个0
            printf("%d%d",n/10%10,n/100);
        else
            printf("%d%d%d",n%10,n/10%10,n/100);
        return 0;
    }

    例1-3 不借助第三者交换变量

    #include<stdio.h>
    
    int exchange_2_withoutOthers()
    {
        int a,b;
        scanf("%d%d",&a,&b);
        a = a + b;
        b = a - b;
        a = a - b;
        printf("%d %d
    ",a,b);
    
        return 0;
    }

    例1-4 鸡兔同笼

    #include<stdio.h>
    
    int chicken_rabbit()
    {
        int n,m,x,y;    //n是鸡兔总数,m是总腿数,x是鸡的数目,y是兔的数目
        scanf("%d%d",&n,&m);
        x = 2*n-m/2;        //解方程组得
        y = m/2-n;
        if(m%2==1||x<0||y<0)    //若m是奇数则得到的x,y不是整数(因为m是总腿数所以从实际出发也容易理解),同时x,y必须是非负的
        {
            printf("No answer
    ");
        }
        else
            printf("%d %d
    ",x,y);
    
        return 0;
    }

    判断一个数是不是素数(质数)

    int is_prime(int n)
    {
        int i;
        for(i=2;i*i<=n;i++)    //n不能太大,因为i*i有可能溢出
            if(n%i==0)    return 0;    //合数
        return 1;    //素数(质数)
    }

    辗转相除法求最大公约数

    #include<stdio.h>
    
    int main()
    {
        int m,n,t;
        scanf("%d%d",&m,&n);
        while(n!=0)
        {
            t=m%n;
            m=n;
            n=t;
        }
        printf("%d",m);
        return 0;
    }
  • 相关阅读:
    448. Find All Numbers Disappeared in an Array
    447. Number of Boomerangs
    441. Arranging Coins
    438. Find All Anagrams in a String
    437. Path Sum III
    434. Number of Segments in a String
    422. Valid Word Square
    415. Add Strings
    414. Third Maximum Number
    [codility]Array-closest-ascenders
  • 原文地址:https://www.cnblogs.com/eniac12/p/4730663.html
Copyright © 2020-2023  润新知