| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1774 人关注过本帖
标题:C编程小学生的题如何做
只看楼主 加入收藏
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
收藏
得分:0 

结果:
5796/12=483
5346/18=297
5346/27=198
4396/28=157
7254/39=186
5796/42=138
7632/48=159

思路:取两位数(12-98)和三位数(123-987)的乘积是一个四位数时,判定三个数字是否遍历数字“1-9”,若是,OK!


#include <iostream.h>

int main()
{
int array[9] = {0};
int a,b,c,d,sum=2;
a = b = c = d = sum = 0;

bool bIs = true;
for(int i = 12;i<=98;i++)
for(int j = 123;j<=987;j++)
{
sum = i*j;
if(sum > 9876)
{
j = 988;
break;
}
if(sum>=1234&&sum<=9876)
{
a=i/10,b=i%10;
if(a!=0&&b!=0)
array[a-1] = array[b-1] = 1;
a=j/100,b=(j-a*100)/10,c=j%10;
if(a!=0&&b!=0&&c!=0)
array[a-1] = array[b-1] = array[c-1] = 1;
a=sum/1000,b=(sum-a*1000)/100,c=(sum-a*1000-b*100)/10,d=sum%10;
if(a!=0&&b!=0&&c!=0&&d!=0)
array[a-1] = array[b-1] = array[c-1] = array[d-1] = 1;
for(int m = 0;m<9;m++)
if(array[m] == 0)
{
bIs = false;
break;
}
if(bIs)
{
cout<<sum<<\"/\"<<i<<\"=\"<<j<<endl;
}
bIs = true;
for(int m = 0;m<9;m++)
array[m] = 0;
}
}
return 0;
}


2007-08-17 16:51
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用cinki在2007-8-17 16:39:39的发言:
1-9...9个数字...0拿出来干什么 孔明大哥忽略了哦~~

那将程序的循环中所有0改为1
或者直接将答案中带有0的答案去掉


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-17 17:08
cinki
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-8-16
收藏
得分:0 
回复:(卧龙孔明)以下是引用cinki在2007-8-17 16:39...
第二个方法有代码吗学C不精..望大哥给予指导

怀才就像怀孕,时间长了才能看出来...
2007-08-17 17:40
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用cinki在2007-8-17 17:40:14的发言:
第二个方法有代码吗学C不精..望大哥给予指导

#include<stdio.h>
#include<conio.h>
int main(void)
{
char A,B,C,D,E,F,G,X,Y;
for(A=1;A<10;A++)
for(B=1;B<10;B++)
if(A!=B)
for(C=1;C<10;C++)
if(B!=C && A!=C)
for(D=1;D<10;D++)
if(A!=D && B!=D && C!=D)
for(E=1;E<10;E++)
if(A!=E && B!=E && C!=E && D!=E)
for(F=1;F<10;F++)
if(A!=F && B!=F && C!=F && D!=F && E!=F)
for(G=1;G<10;G++)
if(A!=G && B!=G && C!=G && D!=G && E!=G && F!=G)
for(X=1;X<10;X++)
if(A!=X && B!=X && C!=X && D!=X && E!=X && F!=X && G!=X)
for(Y=1;Y<10;Y++)
if(A!=Y && B!=Y && C!=Y && D!=Y && E!=Y && F!=Y && G!=Y && X!=Y)
if((A*1000.0+B*100.0+C*10.0+D)/(E*10.0+F)==G*100.0+X*10.0+Y)
printf("%d%d%d%d / %d%d = %d%d%d\n",A,B,C,D,E,F,G,X,Y);
getch();
return 0;
}

应该就是这样,没测试,不过一般是正确的


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-17 17:48
thintear
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-17
收藏
得分:0 
b
2007-08-17 18:32
ljfljf2006
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-9-11
收藏
得分:0 
个人感觉 卧龙孔明 的方法嵌套太多
不如 noah_shi 的来的好

I will come back!
2007-08-17 23:49
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
以下是引用卧龙孔明在2007-8-17 17:48:42的发言:

#include<stdio.h>
#include<conio.h>
int main(void)
{
char A,B,C,D,E,F,G,X,Y;
for(A=1;A<10;A++)
for(B=1;B<10;B++)
if(A!=B)
for(C=1;C<10;C++)
if(B!=C && A!=C)
for(D=1;D<10;D++)
if(A!=D && B!=D && C!=D)
for(E=1;E<10;E++)
if(A!=E && B!=E && C!=E && D!=E)
for(F=1;F<10;F++)
if(A!=F && B!=F && C!=F && D!=F && E!=F)
for(G=1;G<10;G++)
if(A!=G && B!=G && C!=G && D!=G && E!=G && F!=G)
for(X=1;X<10;X++)
if(A!=X && B!=X && C!=X && D!=X && E!=X && F!=X && G!=X)
for(Y=1;Y<10;Y++)
if(A!=Y && B!=Y && C!=Y && D!=Y && E!=Y && F!=Y && G!=Y && X!=Y)
if((A*1000.0+B*100.0+C*10.0+D)/(E*10.0+F)==G*100.0+X*10.0+Y)
printf("%d%d%d%d / %d%d = %d%d%d\n",A,B,C,D,E,F,G,X,Y);
getch();
return 0;
}

应该就是这样,没测试,不过一般是正确的

看到这种代码挺无语的

2007-08-18 00:01
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

我是来引诱大家学C++ STL的


#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
int arr[]={1,2,3,4,5,6,7,8,9};
do{
if(arr[0]*1000+arr[1]*100+arr[2]*10+arr[3]==(arr[4]*10+arr[5])*(arr[6]*100+arr[7]*10+arr[8]))
printf(\"%d%d%d%d/%d%d=%d%d%d\n\",arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8]);
}while(next_permutation(arr,arr+9));
}

[此贴子已经被作者于2007-8-18 0:10:53编辑过]

2007-08-18 00:09
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
呵呵。。。。。。。。
2007-08-18 00:15
totohack
Rank: 1
等 级:新手上路
帖 子:133
专家分:0
注 册:2007-7-15
收藏
得分:0 
小弟愚顿,不知 next_permutation() 有什么作用?

2007-08-18 09:25
快速回复:C编程小学生的题如何做
数据加载中...
 
   



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

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