(八省)蓝桥真题 9数算式

这篇博客探讨了一种特殊的算式,其中两个三位数相乘,使用了1到9的所有数字各一次,且乘积同样使用所有数字各一次。作者利用计算机找出满足这些条件的算式总数,答案是1625。考虑了乘数和被乘数的交换不视为不同方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题:9数算式

观察如下的算式:

9213 x 85674 = 789314562

左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。
而乘积恰好也是用到了1~9的所有数字,并且每个1次。

请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?

注意:
1. 总数目包含题目给出的那个示例。
2. 乘数和被乘数交换后作为同一方案来看待。


答案: 1625

#include <iostream>
#include <string> 
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//全局变量
int flag[10] = {0};
int count = 0;
int sumcount= 0;

int str2int(char *str, int begin, int end);//字符变成整型数据
string int2str(int num);//整型数据变成字符型数据

//判断计算结果是否满足1-9
bool is_ok(int num)
{
	int temp;
	for(int i = 0; i < 10; i++)
	{
		flag[i] = 0;
	}
	string str = int2str(num);
	if(str.size() != 9)
	{
		return 0;
	}
	for(int i = 0; i < 9; i++)
	{
		temp = str[i] - '0';
		if(temp != 0 && flag[temp] == 0)
		{
			flag[temp] = 1;
		}
		else
		{
			return 0;
		}
	}
	return 1;
} 
//将排序的数字分为两个部分,进行相乘运算 
vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值