您的位置:首页 > 编程语言 > C语言/C++

关于c的一些题

2016-06-29 10:39 295 查看
1.有10亿元钱每天花一半,可以花多少天?
    unsigned int money = 1000000000, days = 0;
    while (money != 0) {
        money = money / 2;
        days++;
    }

    printf("%d", days);

2.随机产生
20 个[10 , 100]的正整数,输出这些数以及他们中的最大数
//    int i = 0, max = 0;
//    while (i < 20) {
//        int a = arc4random() % 91 + 10;
//        printf("%d\n", a);
//        max = max > a ? max : a;
//        i++;
//    }
//    printf("max = %d", max);

   
3.编程将所有“水仙花数”打印出来,并打印其总个数。
“水仙花数”是一个各位立方之和等于该整数的三位数。
//    int i = 100, count = 0;
//    while (i <= 999) {
//        if ((i / 100) * (i / 100) * (i / 100) + (i % 100 / 10) * (i % 100 / 10) * (i % 100 / 10) + (i % 10) * (i % 10) * (i % 10) == i) {
//            printf("%d\n",i);
//            count++;
//        }
//        i++;
//    }
//    printf("总个数为%d", count);

   

   
4.已知
abc+cba = 1333,其中
a,b,c 均为一位数,编程求出满足条件的
a,b,c 所有组合
//    int i = 100;
//    while (i <= 999) {
//        if (i + (i % 10) * 100 + ((i % 100 ) / 10 * 10) + (i / 100) == 1333) {
//            printf("%d\n", i);
//        }
//        i++;
//    }
//    结果为:
//    419
//    518
//    617
//    716
//    815
//    914
//    组合为:4.1.9    5.1.8    6.1.7

   

   
5.输入两个数,求最大公约数和最小公倍数。(辗转相除法和普通方法)

   

    //辗转相除法
//    int a = 0, b = 0, GCD = 0, LCM = 0;
//    printf("请输入两个数:");
//    scanf("%d %d", &a, &b);
//    int c = a % b, d = a * b;
//    while (c != 0) {
//        a = b;
//        b = c;
//        c = a % b;
//    }
//    GCD = b;
//    LCM = d / GCD;
//    printf("GCD = %d\n", GCD);
//    printf("LCM = %d", LCM);

   

    //普通方法
//    int a = 0, b = 0, GCD = 0, LCM = 0;
//    printf("请输入两个数:");
//    scanf("%d %d", &a, &b);
//    int i = 1, c = a * b;
//    int min = a < b ? a : b;
//    while (i <= min) {
//        if ((a % i == 0) && (b % i == 0)) {
//            GCD = GCD > i ? GCD : i;
//        }
//        i++;
//    }
//    LCM = c / GCD;
//    printf("GCD = %d\n", GCD);

//    printf("LCM = %d", LCM);
     
     //普通方法

   
int num1 = 0, num2 =
0;

    int gcd = 0, lcm =
0;

    printf("请输入两个数:");

    scanf("%d %d", &num1, &num2);

    int min = num1 < num2 ? num1 : num2;

    int product = num1 * num2;

    for (int
i = min; i > 0; i--) {

        if (num1 % i ==
0 && num2 % i ==0) {

            gcd = i;

            break;

        }

    }

    lcm = product / gcd;

    printf("最大公约数
= %d\n", gcd);
   
printf("最小公倍数
= %d", lcm);
  

   
6.求
n
个随机数里的最小值(n由用户输入)
//    int n = 0, i = 0, min = 101;
//    printf("请输入一个数:");
//    scanf("%d", &n);
//    while (i < n) {
//        unsigned int n = arc4random() % 51 + 50;
//        printf("%d\n", n);
//        min = min < n ? min : n;
//        i++;
//    }
//    printf("min = %d", min);

   

   
7.使用int数组,存放3个年龄值,并循环的打印一遍

   
//    int a[3]={15, 20, 30};
//    int i = 0;
//    while (i < 3) {
//        printf("%d  ", a[i]);
//        i++;
//    }

   

   

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言