pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?祝开心~我要的是怎么用pascal编!开心~

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/25 02:32:09
pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?祝开心~我要的是怎么用pascal编!开心~pascal:一个6位数的2,3,4,5,6倍仍然

pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?祝开心~我要的是怎么用pascal编!开心~
pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?
祝开心~
我要的是怎么用pascal编!
开心~

pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?祝开心~我要的是怎么用pascal编!开心~
var
i,j:longint;
m,n:integer;
a,b:array[1..6] of integer;
function Estimation1(i:longint):boolean;
var
r:integer;
begin
Estimation1:=false;
for r:=2 to 6 do
if ((i*r) div 1000009)then exit;
Estimation1=true;
end;
function Estimation2(i:longint):boolean;
var
k,l,c,t,p:integer;
begin
k:=7;
repeat
k:=k-1;
a[k]:=i mod 10;
i:=i div 10;
until i dvi 10

算法:一般来说可以直接暴力枚举出来,1s内是可以完成的,但是这里有一些可以剪枝。比如说这个数第一位肯定是1,因为166667*6=10000002已经是七位数了。所以只要从100000搜到166666就可以了,所以这个可以用非常白痴的方法来做:把这个数的2、3、4、5、6倍的每一位提取出来排个序(选泽排序比较简单),如果一样就break掉,不一样就再搜。
思路出来,代码就不难写了吧。这里就...

全部展开

算法:一般来说可以直接暴力枚举出来,1s内是可以完成的,但是这里有一些可以剪枝。比如说这个数第一位肯定是1,因为166667*6=10000002已经是七位数了。所以只要从100000搜到166666就可以了,所以这个可以用非常白痴的方法来做:把这个数的2、3、4、5、6倍的每一位提取出来排个序(选泽排序比较简单),如果一样就break掉,不一样就再搜。
思路出来,代码就不难写了吧。这里就不再说了。

收起

先分析一下,判断上线,一个数是六位数,而且还是被六乘过的,那么你就可以想这个数是谁??计算机结果是166666.5,我们就取166667
好了,现在判断下线,下线是100000,这个不用说都知道吧。好了,下面就是思路:
1.循环出数。
2.把原数字分离导入数组并排序。
3。判断各个倍数。
4.输出结果
以上是一级算法;其中2需要求精;
1,通...

全部展开

先分析一下,判断上线,一个数是六位数,而且还是被六乘过的,那么你就可以想这个数是谁??计算机结果是166666.5,我们就取166667
好了,现在判断下线,下线是100000,这个不用说都知道吧。好了,下面就是思路:
1.循环出数。
2.把原数字分离导入数组并排序。
3。判断各个倍数。
4.输出结果
以上是一级算法;其中2需要求精;
1,通过数组个字符串的处理可以分离数;
2,通过一个变量导入数;
3,分离数的每一位,导入数组并排序;
4,比较每一位(用循环来做),如果成功,输出结果,否则continue(继续);
好了,用这个算法去算吧,很简单的,不过就是麻烦了点,其实还可以优化一下,但是由于原因就不写了,也是循环,就是数量级小了一点,也可以优化速度,但这个排序如果用冒泡,会浪费时间,如果用快排就差不多,不过估计还是要超一秒。

收起

begin{main}
for i:=100000 to 166666 do
begin
a1:=i;
chaifen(a1);{编一个过程,把数拆分开来,放在一个集合里}
a2:=i*2;
chaifen(a2);{把它的两倍拆分出来}
for j:=1 to 6 d...

全部展开

begin{main}
for i:=100000 to 166666 do
begin
a1:=i;
chaifen(a1);{编一个过程,把数拆分开来,放在一个集合里}
a2:=i*2;
chaifen(a2);{把它的两倍拆分出来}
for j:=1 to 6 do
if not(b[j] in s) then break;{判断是否都在集合中,有一个不是就结束循环}
{其他倍数的跟2倍的一样,重复写或过程调用即可}
end;
end.

收起

用穷举啦,其实很简单

暴力枚举

142857 啦!
142857
285714
428571
571428
714285
857142

pascal:一个6位数的2,3,4,5,6倍仍然是6位数,而且它们都由原数的6个数字组成,这个数是多少?祝开心~我要的是怎么用pascal编!开心~ pascal把数码1,2,3,4,...,9,分成3组,每组构成一个3位数,使这3个3位数恰好成为1:2:3.能不能写出每句话的意思 free pascal 程序:打印由1,2,3,4四个数字组成的所有四位数,并统计个数. pascal编程求出实数小数部分位数,编写一个函数,求出实数的小书部分位数,例如,实数3.14有2为小数,68.6689有4位小数. PASCAL题目 把数字1,2,3,4,…,9分成3组,每组构成一个3位数,使这3个3位数恰好成1:2:3 该怎样编写?最好能用三重FOR循环做就是说三个数组成一个三位数,这三个三位数的比试1:2:3 求一个六位数,它乘以2、3、4、5、6后仍是由原六位数的刘个数字组成的六位数.要过程哦!~ 一个6位数的最高位数是2,如果把2移到最后一位,其他5位数不动,新数字是原数的3倍,原来6位数是? 输入一个四位数,求它各位上数字的和 用pascal 一个6位数,它的1,2,3,4,5,6倍还是六位数,且数字和原来的6位数完全相同,只是排列顺序不一样,求这个6位数 1,2,3,4,5,6,7,8,组成两个四位数,是其中一个四位数是另一个四位数的2倍,求这两个四位数?数字使用不可重复! Free pascal 所有能被5整除的四位数.求每步的解释. 一个5位数除以一个2位数等于一个3位数,以知5位数的个位是8,十位是5,那么5位数是多少,3位树是多少,2位数多少 用 pascal 编程Description给出一个不多于5位的非负整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123Input一个不大于5位的数字Output三行 第一 谁能将0、1、2、3、4、5、6、7、8、9这10位数组成一个由两个百位数相加等于的一个千位数等式 用pascal求s=1-2+3-4+5-6+7-8+...+99-100的值 一个六位数由1,2,3,4,5组成,而且任意两个位数的数字的差都为一,这样的六位数有多少个? 一个六位数由1,2,3,4,5组成,而且任意两个位数的数字的差都为一,这样的六位数有多少个? 用pascal编写程序 如果一个4位数等于它的每一位数字4次方之和,则称为玫瑰花数,求所有的玫瑰花数.用pascal编写程序如果一个4位数等于它的每一位数字4次方之和,则称为玫瑰花数,求所有的玫瑰