vb编程:一个三位正整数,将三个数组合成最大的一个数,尽量简单些,我是菜鸟

[复制链接]
查看11 | 回复5 | 2011-2-28 02:50:54 | 显示全部楼层 |阅读模式
中,如果a(k)不等于0,那么什么也不用做,继续下面的操作。x是你现在要存放的数据,k是x的个位数字。a(k)=0表示下标为k的数组元素为0,也就是说个位数为k的元素还没有产生过,那么就可以把当前的这个x放进a(k)里。如果a(k)不等于0,则表示在前面的过程中已经出现过了个位数为k的数,那么就不要再放进去了。比方说现在a(5)=0那么现在你得到的x=395,k=5.由于a(k)=a(5)=0所以你还没有生成过个位数为5的数。那么就可以把395放入a(k)中。此时a(5)=395若下一次得到的x=375,则k=5而此时a(k)=a(5)不等于0,说明已经不需要个位数为5的数了,那么也就不用将x放入a(k)中了...
回复

使用道具 举报

千问 | 2011-2-28 02:50:54 | 显示全部楼层
- -|刚才看错题目了....首先说思路1.把3位数拆开2.排序3.重新组合Private Function MakeBigNum(ByVal num As Long) As Long
'如果输入的数字不是3位,返回错误
If Len(CStr(num))3 Then
Ma...
回复

使用道具 举报

千问 | 2011-2-28 02:50:54 | 显示全部楼层
分解成三个一位数,最大的放百位,最小的放个位,另一个放十位.分解时(例如三位数是X)a=int(x/100)b = int((x-a*100)/10)c = x mod 10排序后, y = d*100+e*10+f 再组合起来....
回复

使用道具 举报

千问 | 2011-2-28 02:50:54 | 显示全部楼层
tmp=a(n)a(n)=a(n+1)a(n+1)=tmpnext 二维的4*5for n=1 to 4 for m=1 to 4tmp=a(n,m)a(n,m)=a(n,m+1)a(n,m+1)=tmp nextnextfor n=1 to 4tmp=a(n,4)a(n,4)=...
回复

使用道具 举报

千问 | 2011-2-28 02:50:54 | 显示全部楼层
写个比较程序就行了,比较三个数的大小,然后按从大到小排列就行了...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行