寒假百校真题大联赛二(2017算式900)

重点:next_permutation函数的功能是将数组中选定范围的数按照字典序进行全排列。
c++

#include <iostream>

using namespace std;

int main(int argc,const char *argv[]){
	int a[] = {0,1,2,3,4,5,6,7,8,9};
	do{
		if(a[0]==0 || a[4]==0 ||a[8]==0)continue;
		int x1=a[0] * 1000 + a[1]*100 + a[2]*10 + a[3];
		int x2=a[4] * 1000 + a[5]*100 + a[6]*10 + a[7];
		int x3=a[8] * 10 + a[9];
		if((x1-x2)*x3==900){
			printf("(%d%d%d%d-%d%d%d%d)*%d%d=900",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
			
		}while(next_permutation(a,a+10));
		return 0;
		
	}
}

结果:(5012-4987)*36=900
(6048-5973)*12=900

2、python

import itertools

if __name__ == '__main__':
    a = list(map(int, list('0123456789')))
    x = 0
    for i in itertools.permutations(a, 10):
        t = ''.join(list(map(str, i)))
        a = int(t[0:4])
        b = int(t[4:8])
        c = int(t[8:10])
        if (a - b) * c == 900:
            print(a, b, c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值