| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1567 人关注过本帖
标题:判断水仙花数和计算出1到N的奇数和
只看楼主 加入收藏
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:10 
判断水仙花数和计算出1到N的奇数和
Desktop.zip (30.15 KB)
我擦,怎么不能发截图?
1.判断水仙花数:
x=""
FOR n=100 to 999
    x1=int(n/100)
    x2=int(mod(n,100)/10)
    x3=mod(n,10)
    IF x1^3+x2^3+x3^3=n
        thisform.label2.caption="该数是水仙花数"
    ELSE
        thisform.label2.caption="该数不是水仙花数"
    ENDIF
ENDFOR
但是每次显示都是该数不是水仙花数,即使我输的是水仙花数。
2.帮忙写一下1到N的奇数和的代码
搜索更多相关主题的帖子: 水仙花 
2012-12-15 12:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9819
专家分:27071
注 册:2012-2-5
收藏
得分:0 
程序代码:
*-*所谓水仙花数是指一个n位数,其各位数字立方和等于该数本身的值,例如:153=13+53+33 ,所以153是一个水仙花数。
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    &&成立说明是水仙花数并输出
       ? [水仙花数:]+TRANSFORM(I)
    ELSE
       ? [非水仙花数:]+TRANSFORM(I)
    ENDIF
ENDFORNUM=0
FOR I=1 TO 100
    NUM=NUM+IIF(MOD(I,2)=0,0,I)
ENDFOR
?[奇数和:],NUM


[ 本帖最后由 sdta 于 2012-12-15 12:56 编辑 ]

坚守VFP最后的阵地
2012-12-15 12:50
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:0 
回复 2楼 sdta
你给的代码我都知道,但是现在是这样一个情况,我要判定一个数是不是水仙花数,并且最终的输出要显示在label上。
我做出来不论我输什么数,标签都显示说“该数不是水仙花数”,即使我输入的是一个水仙花数

路途皆是迷路客,一语还归大道中。
2012-12-15 12:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9819
专家分:27071
注 册:2012-2-5
收藏
得分:0 
回复 3楼 远方010
FOR n=100 to 999
    x1=int(n/100)
*   x2=int(mod(n,100)/10)
    x2=int((i-100*a)/10)
*    x3=mod(n,10)
    x3=i-int(i/10)*10
*   IF x1^3+x2^3+x3^3=n
    IF N=x1^3+x2^3+x3^3
     thisform.label2.caption="该数是水仙花数"
    ELSE
        thisform.label2.caption="该数不是水仙花数"
    ENDIF
这样试下

[ 本帖最后由 sdta 于 2012-12-15 13:12 编辑 ]

坚守VFP最后的阵地
2012-12-15 12:58
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:0 
回复 4楼 sdta
还是一样的结果。你可以把附件下载看一看。你的代码输进去也是一样的结果

路途皆是迷路客,一语还归大道中。
2012-12-15 13:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9819
专家分:27071
注 册:2012-2-5
收藏
得分:30 
程序代码:
*---按钮下代码
I=THISFORM.TEXT1.VALUE  &&TEXT1.VALUE=0
A=INT(I/100)        &&百位的值等于这个三位数除以100后取整
B=INT((I-100*A)/10) &&用这个三位数减去它的百位数字与100乘积,&&对得到的差除以10后进行取整,结果就是十位的值
C=I-INT(I/10)*10    &&与上面原理相同,这是求个位的值
IF A^3+B^3+C^3=I    &&成立说明是水仙花数并输出
   THISFORM.LABEL1.CAPTION=[水仙花数:]+TRANSFORM(I)
ELSE
   THISFORM.LABEL1.CAPTION=[非水仙花数:]+TRANSFORM(I)
ENDIF
认真对比一下代码不同之处。

坚守VFP最后的阵地
2012-12-15 13:21
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
1.判断水仙花数:
n=ThisForm.Text1.Value  &&假设文本框Text1里输入了一个三位整数,n的合法性就不判定了
x1=int(n/100)
x2=int(mod(n,100)/10)
x3=mod(n,10)
IF x1^3+x2^3+x3^3=n
  thisform.label2.caption="该数是水仙花数"
ELSE
  thisform.label2.caption="该数不是水仙花数"
ENDIF

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2012-12-15 13:25
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:0 
回复 6楼 sdta
代码是不一样,但是运算是会报错,说数据类型不匹配

路途皆是迷路客,一语还归大道中。
2012-12-15 13:26
远方010
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:41
专家分:13
注 册:2012-10-15
收藏
得分:0 
回复 6楼 sdta
能不能再帮两个忙。
1.帮忙解释一下“+TRANSFORM(I)”的意思。
2.计算1到N的奇数和最后要显示在text2中,我看你写的代码直接是?显示,不能运算

路途皆是迷路客,一语还归大道中。
2012-12-15 13:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9819
专家分:27071
注 册:2012-2-5
收藏
得分:0 
认真看代码后面的注释

坚守VFP最后的阵地
2012-12-15 14:10
快速回复:判断水仙花数和计算出1到N的奇数和
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014041 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved