今日记录

#import <Foundation/Foundation.h>

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

{

    //1.打印1-100中不能被7整除又不包含7的数

    //1>首先不能被7整除

    //2>去掉17,27,37....97

    //3>去掉71-79

//    for (int i = 1; i<=100; i++)

//    {

//        if (i%7 != 0 && i%10 != 7 && i/10 != 7)

//        {

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

//        }

//    }

    

//    2.输入两个数,求最小公倍数和最大公约数

    //1>先求出最小公倍数:一定在最大的数和两个数的乘积之间比较

//    int num1, num2 = 0;

//    printf("please input two number. ");

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

//    int max = num1>num2?num1:num2;

//    for (int i = max;max<=num1*num2 ; i++)

//    {

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

//            printf("最小公倍数为:%d",i);

//            break;

//        }

//    }

    //2>再求出最小公约数:比较两个数中最小的那个

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

//    for (int j = min; j>=1; j--)

//    {

//        if (num1 % j == 0 && num2 % j == 0 )

//        {

//            printf("最大公约数为:%d",j);

//            break;

//        }

//    }

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

//    unsigned int a = 0;

//    int max = 0;

//    for (int i = 1; i<=20; i++)

//    {

//        a =arc4random();

//        int c = a%91+10;

//        printf("c=%d ",c);

//        if (max<c) {

//            max = c;

//        }

//    }

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

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

    int num = 100;

    int count = 0;

    for (int i = num; i<=999; i++)

    {

        int a = i % 10;//个位

        int b = (i/10)%10;//十位

        int c = (i/10)/10;//百位

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

        {

            printf("%d ",i);

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

            count++;

        }

    }

    printf("count=%d ",count);    

    

   // 5.使用循环打印三角形

    for (int i = 0; i<=3; i++) {

        for (int j = 0; j<3-i; j++) {

            printf(" ");

        }

        for (int k  = 0; k<2*i-1; k++) {

            printf("*");

        }

        printf(" ");

    }

    //6.输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数

    //1>输入一行字符,计算这行字符数

//    int count = 0;//用来计数英文字母的个数

//    int count1 = 0;//用来计数空格的个数

//    int count2 = 0;//用来计数数字的个数

//    int count3 = 0;//用来计数其他的个数

//    char receieve = '';//用来接收读入字符

//    printf("please input a string: ");

//    for (int i = 1; ; i++) {

//        receieve = getchar();

//        if ((receieve>='a' && receieve<='z')||(receieve>='A' && receieve<='Z')) {

//            count++;

//        }else if(receieve == ' '){

//            count1++;

//        }else if(receieve>='0' && receieve<='9'){

//            count2++;

//        }else if (receieve == ' '){

//            break;//跳出循环的条件必须具备,否则循环没法停止

//        }else{

//            count3++;

//        }           

//    }

//    printf("英文字母个数为:%d,空格个数为:%d,数字个数为:%d,其他个数为:%d",count,count1,count2,count3);

    

//7.S(n)=a+aa+aaa+aaaa+....+aa..a之值,其中a是一个数字,n表示a的位数例如:2+22+222+222+22222(此时n=5),na都从键盘输入

    

    //1>先输出a,aa,aaa

    //2>for循环执行的顺序:假设输入n=3,a=2,解释执行顺序:首先外层for满足i<=n,执行number=0*10+2=2,打印出2;下面的for循环暂不执行,执行sum1=0+0;然后执行i++,i=2,number=2*10+2=22,打印出22;嵌套的for循环开始执行,sum=22+2,然后执行j++,j=2,不满足j<i,跳出循环;执行sum1=0+22+2;然后执行i++,i=3,number=22*10+2=222,打印出222;嵌套的for循环开始执行,sum=222+2,然后执行j++,j=3,不满足j<i,跳出循环;执行sum1=22+2+222+2;然后执行i++,i=4,不满足条件i<=n,即循环结束

//    int n = 0,a = 0;

//    printf("please enter two number: ");

//    scanf("%d%d",&n,&a);

//    long int number = 0;//定义一个数值表示a, aa..aa

//    long int sum = 0;//在循环内控制部分数字的和,尤其是初始值

//    long int sum1 = 0;//求和

//    for (int i = 1; i<=n; i++)

//    {

//        number = number*10+a;

//        printf("number=%ld ",number);

//        for (int j = 1; j<i; j++)

//        {

//           sum = number+a;

//        }

//        sum1=sum1+sum;

//        

//    }

//    printf("sum1=%ld ",sum1-(n-2)*a);

    //8 : 1+2+3+4……….20!

    //1>首先求出阶乘数1! ,2! ,3!....20!

    //2>将各个阶乘数依次相加

//    long int num = 1;

//    long int sum = 0;

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

//        num = num * i;

//        //printf("num=%ld ",num);

//        sum = sum + num;

//    }

//    printf("sum=%ld ",sum);

    //9: 有一个球,从100m高度自由落下,每次落地后反跳回原来高度的一半,在落下,再反弹,求它第十次落地时,共经过多少米?第十次反弹多高?

    //十次循环,将每次跳跃的高度,打印出来

//    float height = 100.00;

//    float Height = 0.00;//十次落地总计的路程

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

//        height = height/2;

//        //printf("height=%.8f ",height);

//        if (i == 9) {

//            printf("height=%f ",height);//第十次反弹的高度

//        }

//        

//        Height = height*2+Height;

//    }

//    printf("Height=%f ",Height+100);

    

    //10:猴子偷桃问题,猴子第一天摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个,以后每天都吃掉剩下的桃子的一半零一个,到第十天在想吃的时候就只剩下一个桃子了,求第一天共摘了多少个桃子?(摘桃子的那天为第一天!)

//    int count = 1;//总计的桃子数目

//    //第一天:cout/2+1,剩余:count-(count/2+1)

//    //第二天:(count-(count/2+1))/2+1

//    //倒着算

//    for (int i = 1; i<10; i++) {

//        count = 2(count+1);//最后剩余的一个留出来,每次加1

//    }

//    printf("count=%d ",count);

    

    

    

    //面试题1 :输入十个数打印第二个大的数

    //1>定义三个变量,将最大的存入第二大变量中

//    int a = 0;

//    int max = 0;

//    int max1 = 0;//第二大数

//    printf("please enter 10 positive number:");

//    for (int i = 0; i<10; i++)

//    {

//        do

//        {

//          scanf("%d",&a);

//        } while (a<=0);

//        if (max<a)

//        {

//            max1 = max;

//            max = a;

//        }else if(max == a){

//            

//        }else if (max1<a){

//            max1 = a;

//        }

//        

//    }

//    printf("max1=%d ",max1);//打印出第二大的数

    //面试题2:输入一个数,判断是几位数,倒着输出这几个数

    //1>将输入的数看做一个字符,getchar()去存取和读出,判断它是否为数字,计算出相应的位数

    

//    int a = 0;

//    int count = 0;

//    do {

//        printf("please input a positive number:");

//        scanf("%d",&a);

//    } while (a<=0);

//        for (;a>0;a/=10)//计算每个数依次除10 ,而后再对十取余,就求出个位的数值,然后就实现逆序输出了

//    {

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

//        count++;

//    }

//    printf("   count=%d ",count);

原文地址:https://www.cnblogs.com/yuanyuandachao/p/3343423.html