ACM:蓝桥杯:神奇算式
2016-06-05 17:07
267 查看
标题:神奇算式
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
c++版
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。 请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
#include<stdio.h> int quchong(int yy); int main() { int a,b,s,result=0,m=0; for(a=1;a<1000;a++) { if(quchong(a)==1)//去重 { for(b=1;b<1000;b++) { if(quchong(b)==1)//去重 { //分为两种情况,一位数乘三位,两位乘两位,但是要注意(两位乘两位的会重复) if(((a>1&&a<100)&&(b>1&&b<100))||(a<10&&a>1)&&(b<999&&b>100)) { int aa[10]={0}; int x=a; while(x) { aa[x%10]=1;//数字拆分,角标与数字对应 x=x/10; } int y=b; while(y) { aa[y%10]=1;//数字拆分,角标与数字对应 y=y/10; } s=a*b; if(s>=1000&s<9999)//加限制条件 ,积必须为4位数的 { if(quchong(s)==1)//去重 { int q=s; while(q) { if(aa[q%10]!=1)//对比,如果数字不通,直接跳出 break; else q=q/10; } if(q==0) { result++; if(a>10&&a<100) m++;//记下两位数乘两位数的个数 } //之后除以二在用result减去 } else continue; } else continue; } } else continue; } } else continue; } printf("%d",(result-m/2)); } int quchong(int yy) { //去重函数,判断一个数中是否在0~9中没有重复 int arr[10]={0},flag=1,k=0; int t=yy; while(t) { arr[k++]=t%10; t=t/10; } for(int i=0;i<k;i++) { for(int j=i+1;j<k;j++) { if(arr[i]==arr[j]) flag=0; } } return flag; }
c++版
#include<iostream> using namespace std; int quchong(int x) { int a[10]={0},flag=1,k=0; while(x) { a[k++]=x%10; x=x/10; } for(int i=0;i<k;i++) for(int j=i+1;j<k;j++) if(a[i]==a[j]) flag=0; return flag; } int main() { 4000 int x,y,m=0,k=0; for(x=1;x<1000;x++) { if(quchong(x)==1) for(y=1;y<1000;y++) { if(quchong(y)==1) { if(((x>1&&x<100)&&(y>1&&y<100))||((x<10&&x>1)&&(y>=100&&y<=1000))) { int aa[10]={0}; int a=x; while(a) { aa[a%10]=1;a=a/10; } int b=y; while(b) { aa[b%10]=1;b=b/10; } int s=x*y; if(s>=1000&&s<=9999) { if(quchong(s)==1) { int q=s; while(q) { if(aa[q%10]!=1) break; else q=q/10; } if(q==0) { k++; if(x>10&&x<100) m++; } } } } } } } cout<<(k-m/2); }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Linux C函数参考手册(PDF版)
- C# partial关键字说明
- Lua中调用C++函数示例
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- Lua教程(一):在C++中嵌入Lua脚本
- C#用链式方法表达循环嵌套
- Lua教程(二):C++和Lua相互传递数据示例
- C#中的委托数据类型简介
- C++联合体转换成C#结构的实现方法
- C#编写的艺术字类实例代码
- C#实现打造气泡屏幕保护效果
- 举例讲解C#编程中委托的实例化使用
- 使用C#代码获取存储过程返回值
- C++高级程序员成长之路