博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯真题 14校3-大小之差
阅读量:3962 次
发布时间:2019-05-24

本文共 1216 字,大约阅读时间需要 4 分钟。

问题描述

某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。

该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。

比如:766431 - 134667 = 631764 就是具有这样特征的数字。

你还能找到另一个这样的6位数吗?

请填写它重新排列数位后得到的最大数。

输入

没有输入。

输出

输出一个整数。

提示

用printf或cout输出答案。

思路

暴力枚举即可,枚举出所有类型,看是否符合题目要求。

代码:

#include 
#include
#include
using namespace std;int process(int a[6]){
int i; sort(a,a+6); int lift1 = a[5]*100000+a[4]*10000+a[3]*1000+a[2]*100+a[1]*10+a[0]; int lift2 = a[0]*100000+a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5]; int right = lift1 - lift2; int b[6]; i=0; while(right) {
b[i]=right%10; right/=10; i++; } sort(b,b+6); int flag = 1; for(i=0;i<6;i++) {
if(a[i]!=b[i]) {
flag=0; break; } } if(flag == 1 && lift1!=766431) {
printf("%d\n",lift1); return 1; } return 0;}int main (){
int a[6]; int i,j,k,l,n,m; for(i=1;i<=9;i++) {
for(j=1;j<=9;j++) {
for(k=1;k<=9;k++) {
for(l=1;l<=9;l++) {
for(n=1;n<=9;n++) {
for(m=1;m<=9;m++) {
a[0]=i; a[1]=j; a[2]=k; a[3]=l; a[4]=n; a[5]=m; if(process(a)==1) return 0; } } } } } } return 0; }

答案:995544

转载地址:http://rprzi.baihongyu.com/

你可能感兴趣的文章
[连载] Socket 深度探索 4 PHP (一)
查看>>
[无线] Android 系统开发学习杂记
查看>>
[无线] 浅析当代 LBS 技术
查看>>
[杂感] 缅怀乔布斯
查看>>
[无线] 让Android支持cmwap上网
查看>>
[无线] AndroidManifest.xml配置文件详解
查看>>
[移动] Mosquitto简要教程(安装/使用/测试)
查看>>
[HTML5] 关于HTML5(WebGL)的那点事
查看>>
自我反思
查看>>
初识网络编程
查看>>
东北赛选拔教训
查看>>
hash
查看>>
涨姿势了:求两个分子的最大公倍数
查看>>
快速幂
查看>>
vector.reserve and resize &&vector与map结合
查看>>
最长公共子序列
查看>>
计算几何
查看>>
求解方程
查看>>
太弱了。。水题
查看>>
位运算(含应用)
查看>>