威尼斯wns.9778官网活动_vnsc威尼斯城官网

热门关键词: 威尼斯wns.9778官网活动,vnsc威尼斯城官网
当前位置:威尼斯wns.9778官网活动 > 计算机教程 > C语言小程序学习

C语言小程序学习

文章作者:计算机教程 上传时间:2019-05-10

  水仙花数业内的大家可能听说过,但是对于初学者来讲,对于水仙花数还是比较陌生的。

供思考和复习的一些小程序

朋友告诉我程序要自己敲,切不可复制粘贴



首先要知道的是水仙花数的计算公式:153=1**3 5**3 3**3:

程序1

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i  )
 { x=sqrt(i 100);   /*x为加上100后开方后的结果*/
  y=sqrt(i 268);   /*y为再加上168后开方后的结果*/
   if(x*x==i 100&&y*y==i 268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
    printf("n%ldn",i);
 }
}

程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。



如何去判定这个数是否为水仙花数,最好的办法就是用for内嵌循环了,因为涉及到了公式所以很多数学逻辑不是很好的兄台,就尴尬了,其实有一个比较简单的数学逻辑来运算,如设定一个1-999的水仙花数, 程序如下:

程序2

输入三个整数x,y,z,请把这三个数由小到大输出

main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d %dn",x,y,z);
}

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。



for x in range(1,10):  #百位数的计算
  for y in range(1,10):#十位数的计算
    for z in range(1,10):#个位数的计算
      i=x*100 y*10 z*1
        if x**3 y**3 z**3==i:
          print(i)

程序3

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

main()
{
int i,j,k,n;
printf("'water flower'number is:");
 for(n=100;n<1000;n  )
 {
  i=n/100;/*分解出百位*/
  j=n/10;/*分解出十位*/
  k=n;/*分解出个位*/
  if(i*100 j*10 k==i*i*i j*j*j k*k*k)
   {
   printf("%-5d",n);
   }
 }
printf("n");
}

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。



好的学习网站:脚本之家
**待续**

   那么这段代码首先是区分开来首先算出个百位,十位,个位的数,在进行下一步的判定。

举例说明:

for x in range(1,10): #外循环第一层循环 x=1

for y in range(1,10)# #内循环环第二层循环 y=1

本文由威尼斯wns.9778官网活动发布于计算机教程,转载请注明出处:C语言小程序学习

关键词: