问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编写程序,任意输入一个正整数,输出其各位数字重排后最小的整数。 例如: 输入:2017输出127?

发布网友 发布时间:2022-04-24 11:43

我来回答

2个回答

热心网友 时间:2022-04-24 13:12

一行就能完成的,你们这样忽悠题主真的好吗#include <stdio.h>
int main(int c,char** p)
{
return (c=getchar())!=EOF?main(c,p),putchar(c),0:0;
}

热心网友 时间:2022-04-24 14:30

上面的题目是不是拗口呢?理解一下其实也不是很费解,比如100,逐位累加就是1+0+0=1,最后是1位数,结果就是1;再例如99逐位累加就是9+9=18,18不是一位数,再累加1+8=9,9是1位数,结果就是9。
还想到有一个速算的题:求10011除以9的余数。最简单的算法就是1+0+0+1+1=3,余数就是3。好了我们就按照这个思路去解决提出的问题。也就是说对于一个正整数,我们利用MOD(正整数,9)的结果就可以求出这个正整数逐位循环累加,直到最后变成一位数字的结果。
有了上述的思路我们再完善一下:如18,结果应为9,但是MOD(18,9)=0,显然是和结果不符,错误在最后的余数为0应该变为9,即可,那么修正我们的思路:结果=MOD(正整数-1,9)+1,这样就可以避免了余数为0时出现的错误了,那么就可以了吗?我们看下面的截图:
为什么会出现一个错误呢?我们分析一下原因,公式本身没问题,那么我们找函数MOD的定义了,我们再次复习一下MOD函数。
MOD函数是一个求余函数,其语法为: MOD(number,divisor),即是两个数值表达式作除法运算后的余数。特别注意:在EXCEL中,MOD函数是用于返回两数相除的余数,返回结果的符号与除数(divisor)的符号相同。参数 Number 为被除数,Divisor 为除数。如果 divisor 为零,函数 MOD 返回值为#DIV/0!。说明:函数MOD可以借用函数 INT 来表示:MOD(n, d) = n - d*INT(n/d),我们再仔细的查找一下原因,收集一些资料会清楚,对于上述公式中的number与divisor的商原来有个取值范围,就是要求此数值应小于2的27次幂。哦,原来如此!9*2^27=1207959552,所以上述截图出现了错误。
那么问题来了,如何去解决这个问题呢?为此,我们引入一个indirect函数。
INDIRECT函数是 Excel 中的公式,此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身时,请使用此函数。
INDIRECT为间接引用,语法INDIRECT(ref_text,[a1])。参数Ref_text 为对单元格的引用,一种加引号,一种不加引号。
=INDIRECT("A1")——加引号,文本引用——即引用A1单元格所在的文本。
=INDIRECT(A1)——不加引号,地址引用——如果A1的值为B2,B2的值又等于11,那么返回11。
好了,不要再过多的看上面的公式了,只要知道是一种引用就可以了。
我们还需要复习一下SUMPRODUCT函数。
SUMPRODUCT函数,返回相应的数组或区域乘积的和。数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。
语法SUMPRODUCT(array1,array2,array3, ...)Array1,array2,array3, ... 为 2 到 30 个数组,其相应元素需要进行相乘并求和。
下面来看为了实现我们的目的,需要录入的公式:
=MOD(SUMPRODUCT(--(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))-1,9)+1
看公式的截图
公式解释:INDIRECT("1:" & LEN(A2) 返回“$1:$10”
ROW(INDIRECT("1:" & LEN(A2)) 返回{1,2,3,4,5,6,7,8,9,10}数组
MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)返回—{1;2;0;7;9;5;9;5;5;5;2}
SUMPRODUCT(--(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))-1返回45-1
MOD(SUMPRODUCT(--(MID(A2,ROW(INDIRECT("1:" & LEN(A2))),1)))-1,9)+1返回9
好了,就是说是利用了数组,回避了数组过大的问题。
看下面的输出结果:
没有再出现问题,这样问题就完美的解决了。
今日内容技巧提示:
1、INDIRECT函数的引用。
2、SUMPRODUCT函数的用法。
3、MOD函数的局限。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 很久不用会自动注销吗? 白俄罗斯女性地位高吗 如何看待「世界银行暂停其在俄罗斯和白俄罗斯的所有项目」? 从白俄罗斯回国以集中隔离14天后回到成县还需要隔离吗? 白俄罗斯绿卡申请条件 白俄罗斯核辐射最新 小孩子问我俄罗斯、白俄罗斯、乌克兰如何防止村干部冒领退耕还林补偿款,如何回答比较妥当? 白俄罗斯和俄罗斯的语言问题~!!! 俄罗斯东南部的居民是黄种人吗? 白俄罗斯有什么著名的旅游景点? 俄罗斯、白俄罗斯、乌克兰如何妥善解决农村优秀教师数量严重不足,教师待遇和地位很低等问题? 打工三年赚2万美元!为何说白俄罗斯妻子是全部的收入? 来到白俄罗斯,看看白俄罗斯农村长什么样 颜真卿的精神是什么? 不知道为什么无线中继上不了网 中继wifi连不上 中继无线网络满格信号为什么手机连接不上 在Html5中用表单事件和脚本函数实现表单的验证:验证是否为数字 毛哥老鸭汤的酸罗卜怎么做的 这种果子叫凉粉果,有公母之分,母果可以用来做凉粉,有认识的吗 二维原画设计培训有哪些内容要学 南京有教二维游戏原画的培训机构吗? 二维的原画师需要掌握哪些技能? MT4 RIS 1小时提示卖出4小提示买进 请问该怎么操作 二维原画的流程是什么? mt4编程里面 (1) c收盘价大于20均线(ma20) c摸到89均线 且 c收盘价大于 前面三根k线 外汇MT4的EA编程,取前20日最高价,怎么取呀 mt4 编程 满足任意一个条件怎么写 mt4编程,我想写个挂个空单函数,但是用OP_SELLLIMIT没有反应,用OP_BUYLIMIT挂多单就可以,请指教 侠盗猎车罪恶都市怎么租房子?? 求高手解答 侠盗猎车罪恶都市怎么开启出租车 在侠盗猎车罪恶都市里怎么搭出租车啊? 侠盗猎车3怎么做出租车 网络上广告说加一个就能赚钱是不是真的啊?谢谢回答! 侠盗猎车手圣安地列斯怎么打出租车 侠盗猎车手圣安地列斯怎么上出租车 侠盗猎车手圣安地列斯如何坐出租车? 用什么软件可以直接将pdf转化为普通格式 侠盗猎车罪恶都市怎么招虎皮出租车?? 侠盗猎车手圣安地列斯怎么坐出租车