C3_循环结构练习

来源:互联网 发布:阿里云 域名 编辑:程序博客网 时间:2024/06/05 15:09

//

//  main.m

//  homework3

//

//  Created by dllo on 15/7/2.

//  Copyright (c) 2015 Clare. All rights reserved.

//


#import <Foundation/Foundation.h>


int main(int argc,const char * argv[]) {

//    /****************************************************************/

//    // 1. 随机产生20[10 , 100]的正整数,输出这些数以及他们中的最大数

//    

//    

//    int max = 0;

//    for (int i = 0;i < 20 ; i++) {

//        int a = arc4random() % (100 - 10 + 1) + 10;

//        

//        if ( max < a ){

//            max = a;

//        }

//        printf(" %d",a);

//    }

//    printf("\n");

//    printf(" max = %d\n", max);

    

    

//    /*************************************************************/

//    //2. 编程将所有水仙花数打印出来,并打印其总个数。水仙花数是一个各个位立方之和等于该整数的三位数。

//    

//    int num = 0, a = 0 , b = 0 , c = 0 ;

//    for (int i = 100 ; i < 1000 ; i++) {

//        a = i / 100;

//        b = i / 10 % 10;

//        c = i % 10;

//        if (a * a * a + b * b * b + c * c * c == i) {

//            printf("%d\n", i);

//            num++;

//            

//        }

//    }

//    printf("水仙花数共有:%d\n", num);

    

//    /**********************************************************/

//    // 3.已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合

//    

//    for (int a = 0; a < 10 ; a++) {

//        for ( int b = 0 ; b < 10 ; b++){

//            for (int c = 0; c < 10 ; c++) {

//                if (100 * a + 10 * b + c + a + 10 * b + 100 * c == 1333) {

//                    printf("%d %d %d\n", a , b, c);

//                }

//            }

//        }

//    }

//    

    /**************************************************************/

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

//    // 普通方法1

//    int num1 = 0, num2 = 0;

//    int max = 0;

//    int min = 0;

//    int s = 0;

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

//    min = num1 < num2 ? num1 : num2;

//    for ( int i = 1; i <= min; i++) { // i不能从0取值因为被除数不能等于0

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

//            if (max < i) {

//                max = i;

//            }

//            

//        }

//        

//    }

//    s = num1 * num2 / max;

//    printf("最大公约数是:%d\n",max);

//    printf("最小公倍数是:%d\n",s);

    

    

    // 普通方法2

//    int num1 = 0, num2 = 0;

//    int max = 0;

//    int min = 0;

//    int s = 0;

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

//    min = num1 < num2 ? num1 : num2;

//    for ( int i = 1; i <= min; i++) { // i不能从0取值因为被除数不能等于0

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

//            max = max > i ? max : i;

//        }

//    }

//    s = num1 * num2 / max;

//    printf("最大公约数是:%d\n",max);

//    printf("最小公倍数是:%d\n",s);


//    // 辗转法

//    int num1 = 0, num2 = 0;

//    int mid = 0; // mid 相当于中间存储器

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

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

//    int a = num1;

//    int b = num2;

//    while (num1 % num2  != 0) {

//        mid = num1 % num2;

//        num1 = num2;

//        num2 = mid ;

//    }

//    if ( num1 == num2){

//        printf("两个数相同\n");

//    }else if ( num2 == 1){

//        printf("两个数互为质数");

//    }else{

//        printf("最大公约数是:%d\n",num2);

//        printf("最小公倍数是:%d\n", a * b / num2);

//    }

//    

//    

//

    

//    //方法4

//    int num1 = 0, num2 = 0;

//    int min = 0;

//    int s = 0;

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

//    min = num1 < num2 ? num1 : num2;

//    for ( int i = min; i > 0; i--) { // i不能从0取值因为被除数不能等于0

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

//            printf("最大公约数是:%d\n",i);

//            s = num1 * num2 / i;

//            printf("最小公倍数是:%d\n",s);

//            break;

//        }

//        

//    }

    


   return 0;

    

    

}


0 0
原创粉丝点击