首页 > 其他分享 >给定两个数x和y(长度相等),让它们可以交换各个位上的数字(位对应交换),求让两数乘积最大的交换策略,输出交换后的两数[CRound164Div2__C]

给定两个数x和y(长度相等),让它们可以交换各个位上的数字(位对应交换),求让两数乘积最大的交换策略,输出交换后的两数[CRound164Div2__C]

时间:2024-04-24 10:44:16浏览次数:27  
标签:__ int 交换 j1 state 位数 两数

如题,给出x=73,y=31,如何让两数乘积最大?位数定义:各个位上的数字例73,位数有7,3
当前,只有一种交换策略,x=71,y=33,发现交换以后有:x+y=x'+y',如果抽象成求最大面积就好办了,可能一下想不到,还得多积累经验,不是你不知道是你想不到是你见得少,没见识...
当是正方形的时候面积最大小学就学过的东西,那就应该让交换后的x和y差值越小则面积越大
具体实现,比较xy哪个大,然后从确定了大小那位数之后的数开始比较,
若x>y,且该位上的数大于y上的位数,那就进行交换
x<y,且该位上的数小于y上的位数,再行交换
总的来说让大的数变小,小的数变大,实现差值变小--

include <string.h>

include <stdio.h>

char x[1000000];
char y[1000000];
void swap(int j) {
char temp=x[j];
x[j]=y[j];
y[j]=temp;
}
int main() {
int testTimes;
scanf("%d",&testTimes);
for(int k=0; k<testTimes; k++) {
//先看看是x大还是y大,因为长度相同从左到右比较,0代表x大1代表y大
scanf("%s",x);
scanf("%s",y);
int state=-1;
int len=strlen(x);
int j;
int j1;
for(j=0; j<len; j++) {
if(x[j]-'0'>y[j]-'0') { //位数相比
state=0;
j1=j+1;
break;
} else if(x[j]-'0'y[j]-'0') {
} else {
state=1;
j1=j+1;
break;
}
}
for(j=j1; j<len; j++) { //如果x大,如果遇到了y自第二位的数比x大的就交换
if(x[j]-'0'>=y[j]-'0'&&state
0) {
swap(j);
} else if(x[j]-'0'<=y[j]-'0'&&state==1) {
swap(j);
}
}
printf("%s\n",x);
printf("%s",y);
}
}

标签:__,int,交换,j1,state,位数,两数
From: https://www.cnblogs.com/tai--shang/p/18154557

相关文章

  • “企业创新新引擎”数据库专项赋能会,让云原生技术普惠千行百业!
    本文分享自华为云社区《“企业创新新引擎”数据库专项赋能会,让云原生技术普惠千行百业!》,作者:GaussDB数据库。4月19日,由福州软件园科技创新发展公司和华为技术有限公司联合主办的HCDG城市行福州站——“企业创新新引擎”数据库专项赋能会在福州软件园成功举办。会议结合当下企业......
  • golang通过sock进行通信
    只是demo,生产环境要防止粘包。可以作为多进程之间通讯。。。。serverpackagemainimport( "fmt" "net" "os" "os/signal" "sync" "syscall")//客户端连接结构typeClientstruct{ Conn*net.UnixConn}varclients=make(map......
  • 抢先看!美团、京东、360等大厂面试题解析,技术面试必备。
    技术面试必备!美团、京东、360等大厂面试题详解,让你轻松应对各大公司面试挑战!往期硬核面经哦耶!冲进腾讯了!牛逼!上岸腾讯互娱和腾讯TEG!腾讯的面试,强度拉满!前几篇文章分享了上岸腾讯的最新面经。不少粉丝股东留言说别只发腾讯的啦,其他大厂的也安排一些吧,比如美团、360、京东的......
  • 「锐利」升级到13.5版本,重磅推出插拼式智能拼版等多项新功能!
    包装印前软件「锐利」又升级了!13.5版本!锐利是集印前行业三十多年的技术和经验开发的一款包装印前处理软件,提供陷印、拼大版、预览、智能标记、预飞、工具箱、导出图像、搜索器、油墨编辑、曲线调整、模拟套印不准、导入标准PDF、条形码、TIFF输出、无缝拼版、弯曲变形、挂网、可......
  • 政企单位内外网数据交互,如何保障安全性和合规性?
    政府内外网隔离是一种网络安全措施,旨在保护政府内部网络的安全性和保密性。根据国家法律要求,涉及国家秘密的计算机信息系统与公共网络之间必须实行物理隔离。这意味着这些系统应该被完全隔离开来,以防止任何未经授权的访问或数据泄露。其次,为了加强网络安全和防止潜在的风险,一些政......
  • 以下属于常⽤逻辑电平的有( )
    选项:A、PECLB、LVTTLC、LVDSD、LVCMOS答案:ABCD解析:常见的逻辑电平如下:TTL、CMOS、LVTTL、LVCMOS、ECL、PECL、LVPECL、RS232、RS485等,还有一些速度比较高的LVDS、GTL、PGTL、CML、HSTL、SSTL等。1、TTL电平TTL:Transistor-TransistorLogic三极管结构。TTL电平常......
  • LLM学习(四)——构建 RAG 应用
    4.1接入Langchain首先我们导入所有需要的库文件importgoogle.generativeaiasgenaiimportosfromlangchain_google_genaiimportChatGoogleGenerativeAIfromlangchain_google_genaiimportGoogleGenerativeAIEmbeddingsfromlangchain.promptsimportPromptTemplate......
  • 在Linux中,find命令和locate命令有什么区别?
    在Linux中,find和locate都是用于查找文件的命令,但它们的工作方式和效率有着显著的不同:1.find命令工作原理:find命令直接在文件系统中遍历目录结构,实时查找符合特定条件的文件或目录。这意味着它会逐个检查文件系统的实际内容,因此查找过程可能会比较慢,尤其是当搜索大型文件系统......
  • 在Linux中,如何使用grep命令搜索文本?
    grep是Linux系统中非常强大的文本搜索工具,它允许用户使用正则表达式搜索文本,并将匹配的行打印到标准输出。下面我将详细解释如何使用grep命令进行文本搜索。1.基本语法grep[OPTIONS]PATTERN[FILE...]PATTERN:要搜索的模式或正则表达式。FILE:要搜索的文件名。如果省......
  • 在Linux中,如何使用sed命令进行文本替换?
    在Linux中,sed(StreamEditor)是一个用于处理文本流的命令行工具,它非常适合用于执行基本的文本转换。sed可以读取输入的文本文件,根据指定的指令对文本进行处理,并将结果输出到标准输出设备。以下是如何使用sed命令进行文本替换的详细说明:1.基本语法sed命令的基本语法如下:sed's/re......