C++学习笔记-第二章习题(二)

    技术2022-05-11  81

    //2.2-----------------------------------------------------这个比较简单是到12的阶乘和:1!+2!+3!+4!+...+12!。int a=1,sum=0;for(int i=1;i<=12;i++){ a*=i; sum+=a;} cout<<"到12的阶乘和为"<<sum<<endl;//--------------------------------------------------------//2.3-----------------------水仙花数:三位数且各位数字立方和等于该数本身/*int m;cout<<"水仙花数为;"<<endl; for(int i=1;i<=9;i++){  for(int j=0;j<=9;j++){   for(int k=0;k<=9;k++){    m=100*i+10*j+k;    if(m==(i*i*i+j*j*j+k*k*k))     cout<<m<<endl;   }  } }*///---------------------------153,370,371,407-----------------------------//2.4------------------------1000以内所有的完数,一个数恰好等于它的包括1在内的所有不同因子之和(不包括他本身)-----------------------------/*int yinzi,sum=0; for(int i=2;i<=1000;i++){  sum=0;  for(int j=1;j<=i/2;j++){//j到1/2处就可以了,再高也不会有因子了:》   if(i%j==0) yinzi=j;   else yinzi=0;   sum+=yinzi;//   cout<<sum<<" "<<yinzi<<" ";  }  if(sum==i)   cout<<"1000以内的完数:"<<i<<endl; }*///----------------------------这个题开始没看懂,搜了一番,觉得这样循环次数挺多的,但也没有好办法----------------------------//2.5-------------------------3位的素数,且对称;如101----------------------------int sign,x;  double sqrtm; for(int i=1;i<=9;i+=2){//尾数为2的为偶数,可以排除  for(int j=0;j<=9;j++){//中间位数   sign=1;   x=100*i+10*j+i;   sqrtm=sqrt(x*1.0);//   cout<<sqrtm<<" ";   for(int l=3;l<=sqrtm;l+=2){//是否为素数,剔出了偶数因子,和大于平方根的因子    if(x%l==0){     sign=0;     break;    }   }   if(sign==1){    cout<<"3位的对称素数为"<<x<<endl;   }  } }//-----------------------------------求素数的方法有很多种,选用一种自己容易理解的,相对简单的变了一下---------------------//2.6-------------------------------贪吃的猴子:每天吃掉所剩桃子的一半又多一个,已知第十天只剩了1个,求原总共多少桃子?----------------------/*int m=1;for(int i=9;i>=1;i--){ m=(m+1)*2; cout<<"第"<<i<<"天猴子有"<<m<<"个桃子,吃掉了"<<m/2+1<<"个桃子"<<endl;}*///-------------------------------------------------------- 


    最新回复(0)