1378: 2014年蓝桥杯C/C++程序设计A组(省赛)第三题——神奇算式
描述
题目描述:
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
输入:
无
输出:
无
样例输入
无
样例输出
无
#include <iostream>
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include<cmath>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,number = 0,sum;
char a[10],b[4],c[10];
for(i = 1;i <= 999;i++)
for(j = 1;j <= 999;j++)
{
sum = i * j;
if(sum>=1000&&sum<=9999&&i<j)
{
sprintf(c,"%d",sum);
sort(c,c+4); //从小到大排序
sprintf(a,"%d",i);//把i转换字符串
sprintf(b,"%d",j);//把j转换字符串
strcat(a,b); //把b拼接到a的后面
sort(a,a+4); //从小到大排序
if(strcmp(a,c)==0)
number++;
}
}
cout<<number-3;//去除题意中的情况
return 0;
}