zoukankan      html  css  js  c++  java
  • acm水题3个:1.求最大公约数;2.水仙花数;3.判断完数

    //7.求两个整数的最大公约数
    #include<stdio.h>
    //用穷举法求出最大公约数
    int gcd1(int m,int n)
    {
    int min = m > n ? n : m;
    while (min)
    {
    if (m%min == 0 && n%min == 0)
    {
    break;
    }
    else
    {
    min--;
    }
    }
    return min;
    }
    //快速求最大公约数的算法,称为辗转相除法,以下用递归实现
    int gcd2(int m,int n)
    {
    if (n==0)
    {
    return m;
    }
    return gcd2(n, m%n);
    }

    int main()
    {
    int n, m;
    while (~scanf("%d%d",&m,&n))
    {
    //printf("最大公约数为:%d ", gcd1(m, n));
    printf("最大公约数为:%d ", gcd2(m, n));

    }
    return 0;
    }

    //8、“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,/
    //比如:153=1^3+5^3+3^3,输入一个整数,判断它是否是水仙花数。
    #include<stdio.h>
    int cube(int a)
    {
    return a*a*a;
    }
    int main()
    {
    int n;
    int temp;
    int g;//个位
    int s;//十位
    int b;//百位
    int num[4];
    int sum;
    while (~scanf("%d",&n))
    {
    //temp用来记录原来的n,因为后面n会被改掉
    temp = n;
    sum = 0;//sum用来记录各数的立方和
    for (int i = 0; i < 3; i++)
    {
    num[i] = n % 10;
    sum += cube(num[i]);
    n /= 10;
    }
    if (sum==temp)
    {
    printf("此三位数是水仙花数 ");
    }
    else
    {
    printf("此三位数不是水仙花数 ");
    }
    /*g = n % 10;
    n /= 10;
    s = n % 10;
    n /= 10;
    b = n % 10;
    if (temp == (cube(g) + cube(s) + cube(b)))
    {
    printf("此三位数是水仙花数 ");
    }
    else
    {
    printf("此三位数不是水仙花数 ");
    }*/
    }
    return 0;
    }

    //9、完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,
    //则称这个数是完数,比如6,28都是完数:6=1+2+3;28=1+2+4+7+14。输入一个整数,判断它是否是完数。
    #include<stdio.h>
    int main()
    {
    int n;
    int temp;//用来记录所有因子之和
    while (~scanf("%d",&n))
    {
    temp = 0;//每次一次都要初始化一次
    for (int i = 1; i <= n / 2; i++)
    {
    if (n%i==0)
    {
    temp += i;
    }
    }
    if (temp==n)
    {
    printf("此数是完数 ");
    }
    else
    {
    printf("此数不是完数 ");
    }
    }
    return 0;
    }

    参考博客:http://blog.csdn.net/hackbuteer1/article/details/6667026

    一生有所追!
  • 相关阅读:
    非对称加密-RSA公钥加密,私钥解密,私钥加签,公钥验签
    设置mysql数据库本地连接或外部可连接
    mysql自增长主键,删除数据后,将主键顺序重新排序
    非Service层和Controller层调用ssm框架中的方法
    DES加密算法(密文只有字符串和数字)java和android加密的结果一致(可放在url中)
    SpringBoot ajax Restful整合
    java中线程执行流程详解
    在 CSS 中直接引用 fontawesome 图标(附码表)
    C++内存管理~
    操作系统那些事儿
  • 原文地址:https://www.cnblogs.com/BlueBlue-Sky/p/8470189.html
Copyright © 2011-2022 走看看