作业帮 > 综合 > 作业

Pascal编程问题:一个数将它变成一位数字,变成一位数字的方法如下

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/09 02:36:00
Pascal编程问题:一个数将它变成一位数字,变成一位数字的方法如下
把正整数里面的每位数字相乘,比如:6593。将这个整数中的各位数字全部取出,将他们相乘,得到一个新的整数,上面的例子就是6*5*9*3=810,然后继续做下去,8*1*0*=0得到了一个个位数0。
问最后剩下的个位数字是几?
输入:
98886
输出:
0 注意这个数的位数(2
Pascal编程问题:一个数将它变成一位数字,变成一位数字的方法如下
① 你对这道题有什么要求? 如果不用函数,怕是很难简洁清晰地写出了。
② 这题原理简单,但由于输入的『位』数可以是2~100位,那么任何标准数据类型的范围都不够,需要用到大数运算,即用字符串做+-运算。~ 这个你可以接受么?
③ 原理代码(不用大数运算)如下:program number_game;
var
    n, m, product : Longint;     
begin    
    readln(n);    
    while (n>0) do 
    begin
        m := n; product := 1;
        while (m>0) do 
        begin
            product := product * (m mod 10);
            m := m div 10;
        end;        
        if (product = 0) then break;
        if n = product then break;
        n := product;
        writeln(' ', n); // debug
    end;
    writeln(product);    
end.④ 用大数运算的结果:⑤ 有问题或需要用大数运算,继续追问吧~

再问: 我就是要用字符串来解答啊,但可以不要函数吗?
再答: ① 任意长度的两个数字字符串×,需要用到任意长度的两个数字字符串的+。不用函数,代码的清晰地锐减,对你的理解无助~
② 下面是简化版,内嵌任意长度字符串×个位数字的实现~。 ---- 函数是程序的基本,尽快熟悉起来吧~  /// 百度又抽风了, 说字符数目超了~ 只能到你另一个问题里回复你了http://zhidao.baidu.com/question/1703494807087258260.html③运行