给出一个不多于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;
}