图论第三次作业

给出一个不多于5位的正整数

1、求出它是几位数

2、分别输出每一位数字   顺序输出

3、逆序输出各位数字

#include<stdio.h>

int Pos_W(int i)
{
if(i>100000)
{
printf("输入范围错误\n");
}
else if(i>=10000)
{
printf("5位数\n");
}
else if(i>=1000)
{
printf("4位数\n");
}
else if(i>=100)
{
printf("3位数\n");
}
else if(i>=10)
{
printf("2位数\n");
}
else
{
printf("1位数\n");
}
return 0;
}


int Pos_E(long int x)
{   int g,s,b,q,w;
w=x/10000;
    q=x%10000/1000;
    b=x%10000%1000/100;
    s=x%10000%1000%100/10;
    g=x%10000%1000%100%10;
    if(w!=0)
    { 
printf("正序为:%d %d %d %d %d\n",w,q,b,s,g);
printf("逆序为:%d %d %d %d %d\n",g,s,b,q,w);
}
    else if(q!=0)
   {
  printf("正序为:%d %d %d %d\n",q,b,s,g);
  printf("逆序为:%d %d %d %d\n",g,s,b,q);
}
    else if(b!=0)
    {
printf("正序为:%d %d %d\n",b,s,g);
printf("逆序为:%d %d %d\n",g,s,b);
}
    else if(s!=0)
    { 
printf("正序为:%d %d\n",s,g);
printf("逆序为:%d %d\n",g,s);
}
    else
    { 
printf("正序为:%d\n",g);
printf("逆序为:%d\n",g);
}
return 0;
}




int main()
{
Pos_W(1234);
Pos_W(123467);
Pos_W(123);
Pos_E(23456);
Pos_E(345);
return 0;

}


输入100—200间不能被3整除的数
#include<stdio.h>
int Div_Q()
{    int i=0;
for (i=100;i<200;i++)
{
if (i%3 == 0)
{
continue;
}
printf("%d\n ",i);
}
return 0;
}


int main()
{
Div_Q();

}


求100-200间全部素数
#include<stdio.h>
bool IsPrime(int n)
{
for(int a=2;a<n;a++)
{
if(n%a==0)
{
return false;
}
}
return true;
}
int main()
{
for(int i = 100;i <200;i++ )
{
if(IsPrime(i))
{
printf("%d\n",i);
}
}


}

2+22+222+2222+22222+.......
#include<stdio.h>
int Sum_N(int a,int n)//a是数字,n是次数 
{
int count=1;
    long int sn=0,tn=0;//sn是累积和的值,tn是计算第几位时值是多少
    while(count<=n)
    {
        tn=tn+a;
        sn=sn+tn;
        a=a*10;
        ++count;
    }
   printf("a+aa+aaa+...=%ld\n",sn);
   return 0;
}


int main()
{
Sum_N(2,7);
Sum_N(1,5);
return 0;

}


水仙花数

#include<stdio.h>

int Sum_S()

{   int n;

int a,b,c,y;

    for (n=100;n<=999;n++)

{

        a=n%1000/100;  //求第一位数

        b=n%100/10;    //求第二位数

        c=n%10/1;      //求第三位数

        y=a*a*a+b*b*b+c*c*c;

    if(y==n)

   {

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

        }

}

return 0;

}

 

int main()

{

Sum_S();

return 0;

}

完数

#include<stdio.h>

int Num_W()

{

  int i,j,k;

     for(i=1;i<1000;i++)

     {

         int sum=0;

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

         {

             if(i%j==0){    

                 sum+=j;

             }

         }

             if(sum==i){

             printf("%d its factors are ",i );

             for(k=1;k<i;k++)

         {

             if(i%k==0){    

                 printf("%d ",k);}

             }

             printf("\n");

         }

     }    

     return 0;   

}

 

int main()

{

    Num_W();

return 0;

}


分数序列前二十项和
#include<stdio.h>
int Sum_S()
{
double sum=0,a=2,b=1;
    int t,i,n=20;  //改变n的值即可求任意项的和
    for (i=1;i<=n;i++)
{   
       sum+=a/b;   //将各项累加
       t=a;       
       a=a+b;     //将前一项的分子与分母之和作为下一项的分子
       b=t;       //将前一项的分子作为下一项的分母
}
  printf ("%lf\n",sum);
  return 0;
}




int main()
{
Sum_S();
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39385247/article/details/80634776