水仙花数的vfp实现

水仙花数的实现是一个比较经典的算法题,今天我们首先在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了,运行表单吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索表单
, 死循环?求解
, 数字
, 位数
, 水仙花数
, 语言 水仙花数算法
, 一个
, 百位
, 和与乘积
, java水仙花数
水仙花
java实现水仙花数、1000以内的水仙花数、输出所有的水仙花数、c语言水仙花数的编程、打印出所有的水仙花数,以便于您获取更多的相关知识。

时间: 2016-05-08

水仙花数的vfp实现的相关文章

C++实现输出三位数字的水仙花数

问题描述 C++实现输出三位数字的水仙花数 水仙花数是指一个n(>=3)位数字的数,它等于每个数字的n次幂之和. 编程输出3位水仙花数 解决方案 void main() { int n = 100; int a, b, c; for( n=100;n<=999;n++) { a = n/100; b = n/10%10; c = n%10; if ( n==(a*a*a+b*b*b+c*c*c)) { printf("%d %d %dn",a,b,c); } } }

输出100-1000之间所有的“水仙花数”

查看全套"c语言习题集" 题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析: 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 2.程序源代码: #include "stdio.h"#include "conio.h"main(

php中如何求水仙花数优化

水仙花数是指一个n位数(n>=3),它每个位上数字的n次幂之和等于它本身,n为它的位数.(例如:1^3+5^3+3^3 = 153) 水仙花数又称阿姆斯特朗数. 三位的水仙花数有4个:153,370,371,407 四位的水仙花数有3个:1634,8208,9474 五位的水仙花数有3个:54748,92727,93084 六位的水仙花数有1个:548834 七位的水仙花数有4个:1741725,4210818,9800817,9926315 八位的水仙花数有3个:24678050,246780

php实现水仙花数的4个示例分享

 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 3^3+ 5^3 = 153)这篇文章主要介绍了php实现水仙花数的4个示例分享,需要的朋友可以参考下 示例1:    代码如下: <?php for($q=1;$q<=9;$q++){     for($w=0;$w<=9;$w++){       for($e=0;$e<=9;$e++){         if($q*$q*$q + $w*$w*$w + $e*$e*

php实现水仙花数示例分享

 这篇文章主要介绍了php实现水仙花数示例,需要的朋友可以参考下 自幂数,又称阿姆斯特朗数,民间通称水仙花数.实则只有3位自幂数才是水仙花数.4位5位6位等等各有别的叫法. 代码如下: <?php //阿姆斯特朗数:一个k位数,它的每个位上的数字的k次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) class Armstrong {    static function index(){   for ( $i = 100; $i < 100000; $i++ ) {  

java我写的这个求水仙花数为什么算不出来

问题描述 java我写的这个求水仙花数为什么算不出来 import java.util.Scanner; public class Task1{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个数"); int number = input.nextInt(); double s=0; int[] a={0}; int i; f

c语言-C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。

问题描述 C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写. C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写. 解决方案 #include <stdio.h> void fun(int n) { if(n<100 || n>1000) return; int a,b,c; c=n%10; b=n/10%10; a=n/100%10; if(a*a*a+b*b*b+c*c*c == n) printf("%dn",n);

acm-求问杭电ACM2010水仙花数,我的这个答案为什么是错的

问题描述 求问杭电ACM2010水仙花数,我的这个答案为什么是错的 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m=0; int n=0; while(in.hasNext()){ m=in.nextInt(); n=in.nextInt(); if(m<n){ narcissus(m,

水仙花数

package com.zzk.cn; /*** * 打印所有的水仙花数,所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身 * 153是一个"水仙花数",因为153=1的三次方+3的三次方 * @author zhuzhengke * */ public class test03 { public static void main(String[] args) { int a;//代表个位数 int b;//代表十位数 int c;//代表百位数 int