zoukankan      html  css  js  c++  java
  • URAL 1053 Pinocchio

    URAL_1053

        找了几个例子算了一下,发下对于两个不等的长度,最后会变成的长度等于他们的最大公约数。

        后来突然意识到,题目中给的操作就是不断地在使用辗转相除,所以最后得到的结果当然就是两个数的最大公约数了。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 1010
    int N, a[MAXD];
    int gcd(int x, int y)
    {
        return y == 0 ? x : gcd(y, x % y);
    }
    void init()
    {
        int i;
        for(i = 1; i <= N; i ++)
            scanf("%d", &a[i]);
    }
    void solve()
    {
        int i;
        for(i = 1; i <= N; i ++)
            a[i + 1] = gcd(a[i], a[i + 1]);
        printf("%d\n", a[N]);
    }
    int main()
    {
        while(scanf("%d", &N) == 1)
        {
            init();
            solve();
        }
        return 0;
    }
  • 相关阅读:
    concurrent-锁
    字符串查找字符串
    指针作为函数返回值
    数组名作为函数参数
    指针和函数
    多级指针
    指针数组
    指针运算
    指针和数组
    const修饰的指针类型
  • 原文地址:https://www.cnblogs.com/staginner/p/2487331.html
Copyright © 2011-2022 走看看