欧拉计划32题
来源:互联网 发布:淘宝店营销策划方案 编辑:程序博客网 时间:2024/06/06 09:46
如果一个n位数使用了1到n中每个数字且只使用了一次,我们称其为pandigital。例如,15234这个五位数,是1到5pandigital的。
7254是一个不寻常的数,因为:39 186 = 7254这个算式的乘数,被乘数和乘积组成了一个1到9的pandigital组合。
找出所有能够组合成1到9pandigital的乘法算式中乘积的和。
提示: 有的乘积数字能够被多个乘法算式得到,所以在计算时要记得只计算它们一次。
#include<iostream>using namespace std;int number=0;void g(int a[],int m,int n){ if(m==n&&a[0]<a[m])return; int i,t1,t2,t3; t1=t2=t3=0; for(i=0;i<m;i++)t1=t1*10+a[i]; for(i=m;i<m+n;i++)t2=t2*10+a[i]; for(i=m+n;i<9;i++)t3=t3*10+a[i]; if(t1*t2==t3) { number+=t3; //cout<<t1<<"\t"<<t2<<"\t"<<t3<<endl; }}void f(int a[],int n){ if(n==9) { for(int i=1;i<3;i++) { for(int j=i;j<=9-i-j;j++) { int k=9-i-j; if(i+j-1<=k&&k<=i+j)g(a,i,j); } } return; } for(int i=n;i<9;i++) { {int t=a[n];a[n]=a[i];a[i]=t;} f(a,n+1); {int t=a[n];a[n]=a[i];a[i]=t;} }}int main(){ int a[9]={1,2,3,4,5,6,7,8,9}; f(a,0); cout<<number<<endl; system("pause"); return 0; }
0 0
- 欧拉计划32题
- 欧拉计划 32
- 欧拉计划第一题
- 欧拉计划26题
- 欧拉计划 61 题
- 欧拉计划第一题(改进版)
- 欧拉计划第2题
- 欧拉计划39题,42题目
- 欧拉计划 第1题
- 欧拉计划 第2题
- 欧拉计划 第3题
- 欧拉计划 第4题
- 欧拉计划 第5题
- 欧拉计划 第6题
- 欧拉计划 第7题
- 欧拉计划 第8题
- 欧拉计划 第9题
- 欧拉计划 第10题
- javascript 浏览器版本查看,主要…
- ajax, 提交basic Authorization
- base64 算法和调用方法
- linux修改启动界面
- centos5.2 安装gcc gc++
- 欧拉计划32题
- java 执行系统命令的方法
- Java Date,long,String 日期转换
- hibernate级联删除 更新
- mysql免安装运行
- php apache配置
- hibernate 琐表
- vmware上的ip设置
- centos挂载光盘