您的位置:首页 > 编程语言 > C语言/C++

2.while结合for判断回文数及其比较+菲波拉契序列

2016-06-13 14:57 393 查看
while

    1.执行顺序

        格式:

            while(表达式)

                语句;

    2.与for的相互比较

        for和while可以相互转换

        但是for的逻辑性更强,更不容易出错,推荐多使用for

    3.举例

              从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no

          回文数:正着写和倒着写都一样

            比如:121 12321 都是回文数
#include<stdio.h>
int main()
{
int val;
int m;
int sum=0;

printf("please input a number:");
scanf("%d",&val);
m=val;
while(m)
{
sum=sum*10+m%10;
m/=10;
}
for(sum==val)
printf("yes!\n")
else
printf("no!\n");
return 0;

}

     详解:

     试数:1234

            1.m=1234 成立

                sum=0*10+1234%10=4

                m=m/10=123

            2.m=123 成立

                sum=4*10+123%10=43

                m=123/10=12

            3.m=12 成立

                sum=43*10+12%10=432

                m=12/10=1

            4.m=1 成立

                sum=432*10+1%10=4321

                m=1/10=0

            5.m=0 不成立

            则最终sum=4321跟开始输入的试数值1234不相等,所以不是回文数,最终输出"no!"

      ---------------------------------------------------------------------------------------------------------------------------------------------
for(1;2;3)
A;
等价于
1;
while(2)
{
A;
3;
}
    4.什么时候使用while,什么时候使用for

-------------------------------------------用for去写----------

求1+2+3+4+...+100的和
#include<stdio.h>
int main()
{
int sum=0;
int i;
for (i=1;i<101;++i)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
return 0;
}
------------------------------------------用while去写-----
#include<stdio.h>
int main()
{
int sum=0;
int i;
i=1;
while (i<101)
{
sum=sum+i;
++i;
}
printf("sum=%d\n",sum);
return 0;
}
------------------------------------------------------

菲波拉契序列:

1 2 3 5 8 13 21 34
求n次的时候的序列数值:
#include<stdio.h>
int main()
{
int n,f1,f2,f3,i;

f1=1;f2=2;

printf("please input your number:\n");
scanf("%d",n);

if(1==n)
{f1=1;}
else if(2==n)
{f2=2;}
else
{
for(i=3;i<=n;++i)
{
f3=f1+f2;
f1=f2;
f2=f3;
}
printf("%d\n",f3);
}
return 0;
}
详解:当n=7时,i的值从3开始循环,当i=3时,即有for(i=3;i<=7;++i)
f3=f1+f2=1+2=3
f1=2
f2=3
当i=4时,
f3=2+3=5
f1=3
f2=5
当i=5时,
f3=3+5=8
f1=5
f2=8
当i=6时,
f3=5+8=13
f1=8
f2=13
当i=7时,
f3=8+13=21
f1=13
f2=21
即当n=7时的菲波拉契序列值为21
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C c语言