C语言之经典习题
2017-11-21 14:23
183 查看
1.斐波那契
intFibon(int
n)
{
intf1=1;
intf2=1;
intf3=1;//使前两项输出1
for(int
i=3;i<=n;i++)
{f3=f1+f2;
f1=f2;
f2=f3;} //循环体
returnf3;
}
intmain()
{
printf("%d\n",Fibon(0));
printf("%d\n",Fibon(5));
return0;
}
2.数字处理
//几位数:丢个位数字
//
逆序输出:先取余得各位打印,丢弃个位
//
顺序输出:先整除最高位打印,丢弃最高位
intGetFigures(int
n)//统计十进制数字n是个几位数字
{
intcount=0;//计数
if(n==0)
{return1;}
do//丢弃个位
{count++;
n/=10;}
while(n!=0);
returncount;//几位数
}
voidPrintReverse(int
n)//逆序输出十进制数字n的每一位,12->2
1
{
if(n<0)//负数处理
{printf("-");
n=-n;}
do//打印个位,丢弃个位
{printf("%d ",n%10);
n/=10;}
while(n!=0);
printf("\n");
}
voidPrintOrder(int
n)//顺序输出
{
inta=GetFigures(n);//几位数
int tmp=1;
for(int
i=0;i<a-1;i++)
{tmp*=10;}//2位数对应100
do//打印最高位,丢弃最高位,进行下一位
{printf("%d ",n/tmp);
n%=tmp;}
tmp/=10;}
while(n!=0);
printf("\n\n");
}
intmain()
{
printf("%d\n",GetFigures(0));
PrintReverse(0);
PrintOrder(0);
printf("%d\n",GetFigures(567));
PrintReverse(567);
PrintOrder(567);
printf("%d\n",GetFigures(-567));
PrintReverse(-567);
PrintOrder(-567);
return0;
}
3.判断素数
#include<math.h>
boolE(int
n)
{
//for(inti=2;i<n;i++)
for(inti=2;i<sqrt((double)n);i++)//进行开平方优化
{if(n%i==0)
{returnfalse;}}
returntrue;
}
intmain()
{
if(E(7))//判断某一个数字是不是素数
{printf("%d是素数\n",7);}
else
{printf("%d不是素数\n",7);}
for(inti=3;i<100;i++)//判断3~100之间的素数
if(E(i))
{printf("%d\n",i);}
return0;
}
1.斐波那契
intFibon(int
n)
{
intf1=1;
intf2=1;
intf3=1;//使前两项输出1
for(int
i=3;i<=n;i++)
{f3=f1+f2;
f1=f2;
f2=f3;} //循环体
returnf3;
}
intmain()
{
printf("%d\n",Fibon(0));
printf("%d\n",Fibon(5));
return0;
}
2.数字处理
//几位数:丢个位数字
//
逆序输出:先取余得各位打印,丢弃个位
//
顺序输出:先整除最高位打印,丢弃最高位
intGetFigures(int
n)//统计十进制数字n是个几位数字
{
intcount=0;//计数
if(n==0)
{return1;}
do//丢弃个位
{count++;
n/=10;}
while(n!=0);
returncount;//几位数
}
voidPrintReverse(int
n)//逆序输出十进制数字n的每一位,12->2
1
{
if(n<0)//负数处理
{printf("-");
n=-n;}
do//打印个位,丢弃个位
{printf("%d ",n%10);
n/=10;}
while(n!=0);
printf("\n");
}
voidPrintOrder(int
n)//顺序输出
{
inta=GetFigures(n);//几位数
int tmp=1;
for(int
i=0;i<a-1;i++)
{tmp*=10;}//2位数对应100
do//打印最高位,丢弃最高位,进行下一位
{printf("%d ",n/tmp);
n%=tmp;}
tmp/=10;}
while(n!=0);
printf("\n\n");
}
intmain()
{
printf("%d\n",GetFigures(0));
PrintReverse(0);
PrintOrder(0);
printf("%d\n",GetFigures(567));
PrintReverse(567);
PrintOrder(567);
printf("%d\n",GetFigures(-567));
PrintReverse(-567);
PrintOrder(-567);
return0;
}
3.判断素数
#include<math.h>
boolE(int
n)
{
//for(inti=2;i<n;i++)
for(inti=2;i<sqrt((double)n);i++)//进行开平方优化
{if(n%i==0)
{returnfalse;}}
returntrue;
}
intmain()
{
if(E(7))//判断某一个数字是不是素数
{printf("%d是素数\n",7);}
else
{printf("%d不是素数\n",7);}
for(inti=3;i<100;i++)//判断3~100之间的素数
if(E(i))
{printf("%d\n",i);}
return0;
}
相关文章推荐
- C语言经典算法(十)——递归实现汉诺塔
- 经典C语言面试题
- 我的C语言笔记之经典代码(一)
- C语言8大经典排序算法代码和详细注释
- 算法竞赛入门经典习题集
- [c][zz]C语言100个经典算法
- NEUQACM OJ:1070 谭浩强C语言(第三版)习题9.1
- 重解几道华为经典C语言面试题
- C语言经典案例100例 源码1-50
- c语言初步经典题---计算长方形的周长和面积
- c语言初步经典题8--求一个数的各位值
- c语言10个经典小程序
- 第5周 经典小程序2题 C语言实现的猜拳游戏(剪子锤子布)
- [刷题]算法竞赛入门经典 第2章习题
- (经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
- 算法竞赛入门经典习题3-2
- 几道经典C语言面试题
- 5、C#基础整理(for 语句经典习题--与 if 的嵌套)
- C语言 经典编程100题
- 算法竞赛入门经典第3章【小结与习题】