您现在所在的是:

无所不谈

回帖:17个,阅读:6914 [上一页] [1] [2] [下一页]
3848
文曲星
文章数:907
年度积分:50
历史总积分:3848
注册时间:2003/11/6
发站内信
发表于:2003/11/27 23:04:00
#0楼
题目如下:一个2位数乘以一个3位数,等于一个4位数,正好用到9个数字,即1-9,不能重复.
878
wushigang
文章数:13
年度积分:50
历史总积分:878
注册时间:2002/10/11
发站内信
发表于:2003/11/28 14:31:00
#1楼
int i,k,n,m;
for(i=12;i<99;i++)
{
for(k=123;k<999;k++)
{
n=i*k;
if(n>9999) break;

m=0;
m|=1<<(i/10);
m|=1<<(i%10);
m|=1<<(k/100);
m|=1<<(k%100/10);
m|=1<<(k%10);
m|=1<<(n/1000);
m|=1<<(n%1000/100);
m|=1<<(n%100/10);
m|=1<<(n%10);

if(m==0x3FE) printf("%d+%d=%d\n",i,k,n);
}
}



[此贴子已经被作者于2003-12-5 9:06:44编辑过]
1295
comszmz
文章数:114
年度积分:50
历史总积分:1295
注册时间:2003/8/29
发站内信
发表于:2003/11/28 18:58:00
#2楼

Sub ComVal()
Dim h, i, j, k, l, m, n, o, p As String
For a = 10 To 99
For b = 100 To 999
DoEvents
   c = a * b
   Label1 = c
   If c < 9999 Then

   h = Mid(Str(a), 2, 1)
   i = Mid(Str(a), 3, 1)
   
   j = Mid(Str(b), 2, 1)
   k = Mid(Str(b), 3, 1)
   l = Mid(Str(b), 4, 1)
   
   m = Mid(Str(c), 2, 1)
   n = Mid(Str(c), 3, 1)
   o = Mid(Str(c), 4, 1)
   p = Mid(Str(c), 5, 1)
   If h <> "0" And i <> "0" And j <> "0" And k <> "0" And l <> "0" And m <> "0" And n <> "0" And o <> "0" And p <> "0" Then
   If h <> i And h <> j And h <> k And h <> l And h <> m And h <> n And h <> o And h <> p Then
   If i <> j And i <> k And i <> l And i <> m And i <> n And i <> o And i <> p Then
   If j <> k And j <> l And j <> m And j <> n And j <> o And j <> p Then
   If k <> l And k <> m And k <> n And k <> o And k <> p Then
   If l <> m And l <> n And l <> o And l <> p Then
   If m <> n And m <> o And m <> p Then
   If n <> o And n <> p Then
   If o <> p Then
  Text1 = Text1 + Str(a) & " * " & Str(b) & "=" & Str(c) + Chr(10) + Chr(13)
   End If
   End If
   End If
   End If
   End If
   End If
   End If
   End If
   End If
   End If
Next
Next
MsgBox " 完成!"
End Sub

以上算法不是很規范!:)

結果:
12 *  483= 5796
18 *  297= 5346
27 *  198= 5346
28 *  157= 4396
39 *  186= 7254
42 *  138= 5796
48 *  159= 7632
974
工控哥哥
文章数:125
年度积分:50
历史总积分:974
注册时间:2003/7/18
发站内信
发表于:2003/11/28 19:19:00
#3楼
不错不错
2509
sgx
文章数:474
年度积分:50
历史总积分:2509
注册时间:2001/11/22
发站内信
发表于:2003/11/28 20:38:00
#4楼
高手
骐骥一跃,不能十步;
驽马十驾,功在不舍
29730
思南 管理员
文章数:14045
年度积分:57
历史总积分:29730
注册时间:2001/3/12
发站内信
发表于:2003/11/28 22:23:00
#5楼
佩服!
图
如您对论坛有好的建议或创想,请加大版主微信号:gkong2015
大版主推荐【工控百家谈】微信公众号,业界大拿原创内容分享
977
亦凡
文章数:4
年度积分:50
历史总积分:977
注册时间:2003/11/6
发站内信
发表于:2003/11/28 23:18:00
#6楼
一个网友解的,供参考。

int main()
{
char s[100];
for(int i = 11; i < 99; i++)
for(int j = 111; j < 999; j++)
{
sprintf(s, "%d%d%d", i, j, i * j);
sort(s, s+strlen(s));
if (strcmp(s, "123456789") == 0)
printf("%d * %d = %dn", i, j, i * j);
}

}
1295
comszmz
文章数:114
年度积分:50
历史总积分:1295
注册时间:2003/8/29
发站内信
发表于:2003/11/29 10:58:00
#7楼
以下是引用亦凡在2003-11-28 23:18:00的发言:
一个网友解的,供参考。

int main()
{
char s[100];
for(int i = 11; i < 99; i++)
for(int j = 111; j < 999; j++)
{
sprintf(s, "%d%d%d", i, j, i * j);
sort(s, s+strlen(s));
if (strcmp(s, "123456789") == 0)
printf("%d * %d = %dn", i, j, i * j);
}

}

更是高手,短短幾句就成了!
1454
茜茜
文章数:165
年度积分:50
历史总积分:1454
注册时间:2003/11/17
发站内信
发表于:2003/11/30 9:37:00
#8楼
啊!
  啊!
五体投地啊!
2332
盲流李
文章数:471
年度积分:50
历史总积分:2332
注册时间:2003/12/15
发站内信
发表于:2003/12/19 5:14:00
#9楼
都是神仙!就我是凡人!不会!就是不会!
我是党员我怕谁!谁是党员谁怕我!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

109.2007