WEB开发网
开发学院软件开发数据结构 水仙花数的vfp实现 阅读

水仙花数的vfp实现

 2009-05-08 11:57:54 来源:WEB开发网   
核心提示:水仙花数的实现是一个比较经典的算法题,今天我们首先在vfp中来实现它,水仙花数的vfp实现,首先我们了解一下什么是“水仙花数”,所谓水仙花数是指一个n位数,其各位数字立方和等于该数本身的值,例如:153=13+53+33 ,所以153是一个水仙花数,

水仙花数的实现是一个比较经典的算法题,今天我们首先在vfp中来实现它。

首先我们了解一下什么是“水仙花数”。所谓水仙花数是指一个n位数,其各位数字立方和等于该数本身的值,例如:153=13+53+33 ,所以153是一个水仙花数。

我们来做一个简单点儿的:求解3位数的水仙花数,即100至999之间的水仙花数。很明显这个程序需要使用循环,并且从水仙花数的概念可知,其重点是求解出循环变量当前值的各位数字的值。剩下的工作就简单了,把求解出的各位数字的立方和与循环变量当前值进行比较,如果相等则说明这是一个水仙花数,输出它即可。相关说明见代码注释。本文发表于编程入门网:www.bianceng.cn

我们用表单来实现这个例子,运行时如下图:

 

参照上图开始我们的制作:

一、新建表单,向表单上添加一个标签控件,caption属性值设置为“显示100到999间的水仙花数”;添加两个命令按钮command1和command2,并将它们的caption属性值分别设置为“开始”和“清除”;添加一个编辑框控件Edit1,属性值均采用默认的。

二、添加事件代码:

1、“清除”按钮的click事件:

thisform.edit1.value=""
thisform.refresh

2、“开始”按钮的click事件:

local i,a,b,c
for i=100 to 999
  a=int(i/100)        &&百位的值等于这个三位数除以100后取整
  b=int((i-100*a)/10) &&用这个三位数减去它的百位数字与100乘积,
                       &&对得到的差除以10后进行取整,结果就是十位的值
  c=i-int(i/10)*10    &&与上面原理相同,这是求个位的值
  if i=a^3+b^3+c^3    &&成立说明是水仙花数并输出
    thisform.edit1.value=thisform.edit1.value+str(i,5)+chr(13) &&用chr(13)换行
  endif
endfor

OK了,运行表单吧。

Tags:水仙 花数 vfp

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接