这道题怎么做有照片做

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1308 人关注过本帖
标题:求大神指点,这道题怎么做啊
等 级:新手上路
帖 子:10
结帖率:33.33%
&&已结贴√
&&问题点数:20&&回复次数:9&&&
求大神指点,这道题怎么做啊
九数组分数
1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?
下面的程序实现了该功能,请填写划线部分缺失的代码。
#include &stdio.h&
void test(int x[])
&&& int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
&&& int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];
&&& if(a*3==b) printf(&%d / %d\n&, a, b);
void f(int x[], int k)
&&& int i,t;
&&& if(k&=9){
&&&&&&&&test(x);
&&& for(i=k; i&9; i++){
&&&&&&&&{t=x[k]; x[k]=x[i]; x[i]=t;}&&
&&&&&&&&f(x,k+1);
&&&&&&&&_____________________________________________ // 填空处
int main()
&&& int x[] = {1,2,3,4,5,6,7,8,9};
&&& f(x,0);&&&
&&& return 0;
注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
搜索更多相关主题的帖子:
等 级:黑侠
帖 子:107
专家分:534
这是一个典型的全排列组合算法,递归后将交换的数据还原即可,复制递归前的那行代码即可,如果非要不一样,可把k、i对调,结果一样。
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
若是用排列组合的方法,如题目中的方法,确实是难理解。我想出来一个好理解但是比较死的办法。设N为分子,M为分母,且M=N*3,由于有9个数字,所以N只能是四位数,M是五位数。试想N的三倍是五位数,且N的四个数字不能重复,所以N最小是3412,同理N最大是9876。在这个范围内穷举每一个数,只要M*10000+N,即9个数字组成的数没有相同的数字而且没有数字0即可。下面是我的算法。
程序代码:#include &stdio.h&
#include &stdlib.h&
#include &stdbool.h&
int main()
&&& bool isSameNumberExistsInTwoNumbers(int m,int n);
&&& int N,M;
&&& for(N= &&&&&&&&M=N* &&&&&&&&if(isSameNumberExistsInTwoNumbers(M,N))
&&&&&&&&&&&&printf(&%d/%d=1/3\n&,N,M);
&&& return bool isSameNumberExistsInTwoNumbers(int m,int n)
&&& int i,j,total=m* &&& char numChar[ &&& itoa(total,numChar, &&& for(i= &&&&&&&&for(j=i+ &&&&&&&&&&&&//比较是否有相同的数字或者有0
&&&&&&&&&&&&if(numChar[i]==numChar[j]||numChar[i]==' &&& if(numChar[ &&& return true;
下面是程序的运行结果,大家看下对不对。
附件: 您没有浏览附件的权限,请
&&&唯实惟新 至诚致志
等 级:黑侠
帖 子:107
专家分:534
可行,不过楼主题意是帮他填空。另判断是否重复还有更高效的算法,不需要转换为字符串,如下:
bool isSameNumberExistsInTwoNumbers(int m,int n)
&&& int i,total=m*10000+n;
&&& char numChar[10]={0};&&//注意长度10是因为末尾要加一个字符串结束标志'\0'
&&& for(;total/=10)
&&&&&&&&&numChar[total%10]++;
&&& for(i=9;i;i--)
&&&&&&&&&if(numChar[i]!=1)
等 级:版主
威 望:200
帖 子:4832
专家分:26341
回复 4楼 拉链
bool isSameNumberExistsInTwoNumbers(int m,int n)
&&& unsigned mark = 0;
&&& for( n=n*100000+m; n!=0; n/=10 )
&&&&&&&&mark |= 1u&&(n%10);
&&& return mark==0x3FE;
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
回复 5楼 rjsp
蒙了,请问位移运算怎么做到的。
&&&唯实惟新 至诚致志
等 级:版主
威 望:200
帖 子:4832
专家分:26341
回复 6楼 qq
遇到1就将第一bit设为1
遇到2就将第二bit设为1
遇到3就将第三bit设为1
遇到9就将第九bit设为1
最后看一下是不是二进制的
等 级:黑侠
帖 子:107
专家分:534
回复 5楼 rjsp
回复5楼:就是把数组变成位。得到一个数的各位数据后,把1左移到该位并与mark或,如果9个数不同,则最终的数应该是二进制11 fe。
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
回复 8楼 拉链
咯,在纸上比划了半天,才明白怎么回事,不得不说,此方法确实精妙无比。
&&&唯实惟新 至诚致志
版权所有,并保留所有权利。
Powered by , Processed in 0.062537 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights ReservedZ=f(x+y,xy,x/y) 求Zx,Zxx,Zxy
(能否给出详细步骤?)
x/y=W 则 Z=F(U,V,W)
Zx = Fu*Ux+Fv*Vx+Fw*Wx = F1'*1+F2'*y+F3'*1/y
Zxx=(F1'*1+F2'*y+F3'*1/y)x=
(F11''+F12''*y+F13''*1/y)+(F21''*1+F22''*y+F23''*1/y)*y+(F31''*1+F32''*y+F33''*1/y)*1/y
Zxy=(F1'*1+F2'*y+F3'*1/y)y
=[F11''*1+F12''*x+F13''*(-1)/y2]
+{[F21''*1+F22''*x+F23''*(-1)/y2]y + F2'}
+{[F31''*1+F32''*x+F33''*(-1)/y2]*1/y + F3*(-1)/y2}
备注:(-1)/y2是指负Y平方分之一
你一定要会啊老大,我花了十分钟才把它打上去的.
(1)点P在Y轴上;
其坐标为(0,Y)
(2)点P在X轴上;
其坐标为(X,0)
您好,98%浓硫酸的相对密度是1.84,也就是说98%浓硫酸的密度是1.84g/cm3.
根据密度公式ρ=m/v,V=m/ρ
10t=10 000kg=10...
设甲做了X个 乙做了Y个
方程组X+Y=100
X/3-Y/10=16
【成语词条】八方风雨
【成语拼音】bā fāng fēng yǔ
【常用程度】常用
【成语结构】偏正式
【感***彩】中性词
【产生年代】古代
【成语解释】八方:...
2.可以确定n只能是一个四位数,且千位数为2,百位数为0,接下来去试十位数和个位数,可知满足n-S(n)=2007的n有、…、
...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

参考资料

 

随机推荐