蓝桥杯的一道试题怎么都解不出正确答案 求助

Me510 2017-02-20 07:11:30
凑算式:
A+B/C+DEF/GHI=10
这个算式中A~I代表1~9,不同的字母代表不同的数字。
例:6+8/3+952/714就是一种解法。

//生成了九的全排列来解的
#include<stdio.h>
#include<stdlib.h>

int n=0;
void f(int a[],int k)
{
if(k==8&&(double)a[0]+(double)a[1]/a[2]+(double)(a[3]*a[4]*a[5])/(a[6]*a[7]*a[8])==10)
{n++;
}
for(int i=0;i<9;i++)
{
int t=a[k];a[k]=a[i]; a[i]=t;
f(a,k+1);
t=a[k];a[k]=a[i]; a[i]=t;

}
}
main()
{
int a[9]={1,2,3,4,5,6,7,8,9};
f(a,0);
printf("%d",n);
system("pause");
return 0;

}

各位兄弟姐妹,帮帮忙。
...全文
288 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shen_wei 2017-02-23
  • 打赏
  • 举报
回复
幻夢之葉 2017-02-21
  • 打赏
  • 举报
回复
浮点数是不能直接 == 来比较的,有个精度问题 f - 10 < 1e-10 && f - 10 > -1e-10

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧