关于c的一些题

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++;
//    }
   
   
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值