美文网首页
oc习题合集一

oc习题合集一

作者: 阿狸演绎 | 来源:发表于2017-07-19 21:03 被阅读0次
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
   /*
    int a1;
    printf("请输入一个整数:");
    scanf("%d",&a1);
    if (a1 % 2 == 0) {
        printf("%d是偶数\n",a1);
    }else{
        printf("%d是奇数\n",a1);
    }
   */
    //2
    /*
    int a = 18,b = 16,c = 24;

     //条件运算符(三目运算符)表达式 ?值一 :值二,如果表达式的结果为真,则取值一,表达式结果为假则取值二
     //max = a > b ? a:b;
     //max = max > c ? max :c;
     
    if (a>b) {
        if (a>c) {
            printf("%d",a);
        }else{
            printf("%d",c);
        }
   
    }else{
        if (b > c) {
            printf("%d",b);
        }else{
            printf("%d",c);
        };
        
    }
     */
    //3
    /*
    int a2;
    printf("请输入一个年数:");
    scanf("%d",&a2);
    if ((a2 % 4 == 0 && a2 % 100 != 0 )|| (a2 % 400 == 0)) {
        printf("%d是闰年",a2);
    }else {
        printf("%d不是闰年",a2);
     }*/
    //4
    /*
    int a3,b3,c3;
    scanf("%d %d %d",&a3,&b3,&c3);
    printf("q请输入三个数:");
    if ((a3+b3>c3)&&(a3+c3>b3)&&(b3+c3>a3)&&a3>0&&b3>0&&c3>0) {
        printf("%d %d %d",a3,b3,c3);
        printf("可以构成三角形");
    }else{
        printf("不可以构成三角型");
    }
     */
    //5
    /*
    int a4;
    float money;
    printf("请输入一个托运数:");
    scanf("%d",&a4);
    if(a4 <= 50){
        money = a4 * 0.15;
        printf("%f",money);
    }else{
        money = 50 * 0.15 + (a4 - 50) * (0.1+0.15);
        printf("%.2f\n",money);
    }
     */
    //6水仙花数
  /*
   int count = 0;//记录水仙花数
    for (int a5=1; a5 <= 9; a5++) {
        for (int b5 = 0; b5 <= 9; b5 ++) {
            for (int c5 = 0; c5 <= 9; c5++) {
                if ((a5 * 100 + b5 * 10 + c5) == (a5*a5*a5 + b5*b5*b5 + c5*c5*c5 )) {
                    printf("%d\n",a5 * 100 + b5 * 10 + c5);
                        count++;
                    
                }
            }
        }
    }
    printf("水仙花个数%d\n",count);
   */
    //7.1辗转相除法
    //概念:最大公约数:两个数a,b,先求出a和b的余数,如果余数不为0,则把b的值给a,余数的值给b,然后继续a和b的余数。重复该操作,知道余数为0,注意:此时b中储存的就是最大公约数、
    /*
    //最小公倍数:两个数的乘积/最大公约数
    int num1 = 24,num2 = 12;
    //为了提取最小公倍数,要将原始的值保持
    int number1 = num1,number2 = num2;
    //求出两个数的余数
    int temp = number1 % number2;
    //判断余数的值,并且重复操作
    while (temp != 0){
        number1 = number2;
        number2 = temp;
        temp = number1 % number2 ;
    }
    int tempNum = num1 * num2 / number2;
    printf("最大公约数是:%d,最小公倍数是:%d\n",number2,tempNum);
     */
    /*
    int i,j;
    printf("请输入两个数:");
    scanf("%d %d", &i ,&j);
    int k = i % j ;
    int s = i * j;
    while (k != 0) {
        i = j;
        j = k;
        k = i % j;
    }
    printf("最大公约数为%d",j);
    printf("最小公倍数为%d",s/j);
    */
    //7.2
    //普通方法
    //最大公约数:从两个数中最小的开始往下遍历,到一为止,依次判断能被两个数同时整除,满足条件的第一个数就是最大公约数。
    //最小公倍数:从两个数中的最大值开始往上遍历,直到两个数的乘积为止,依此判断是否能同时整除两个数,满足此条件的第一个数就是最小公倍数。
    //求最大公约数
    int n = 34,m = 98;
    int min = n < m ? n : m;
    for (int i = min; i >= 1; i--) {
        if (n % i == 0 && m % i == 0) {
            printf("最大公约数为:%d\n",i);
            //注意:找到最大公约数结束循环
            break;
        }
    }
    //求最小公倍数
    int maxValue = n > m ? n : m ;
    for (int i = maxValue; i  <= n * m ; i ++) {
        if (i % n == 0 && i % m ==  0) {
            printf("最小公倍数为:%d\n",i);
            break;
        }
    }
    /*
    int m,n;
    printf("请输入两个数:");
    scanf("%d %d", &m ,&n);
    int l = m * n;
    while (m != n) {
        if (m > n) {
            m = m - n ;
        }else{
            n = n - m;
        }
    }
    printf("最大公约数为%d",n);
    printf("最小公倍数为%d",l/n);
     */
    return 0;
    
}

相关文章

网友评论

      本文标题:oc习题合集一

      本文链接:https://www.haomeiwen.com/subject/uzdrkxtx.html