Pascal【自定义函数题目】
Pascal【自定义函数题目】做一道给10悬赏,谢谢!!!!!!!!急!!!!!(每一步最好有说明)求数字的乘积根。正整数的数字乘积这样规定:这个正整数中非零数字的乘积。...
Pascal【自定义函数题目】
做一道给10悬赏,谢谢!!!!!!!!急!!!!!
(每一步最好有说明)
求数字的乘积根。正整数的数字乘积这样规定:这个正整数中非零数字的乘积。例如整数999的数字乘积为9*9*9,得到729;729的数字乘积为7*2*9,得到126;126的数字乘积为1*2*6,得到12;12从数字乘积为1*2,得到2。如此反复取数字的乘积,直至得到一位数字为止。999的数字乘积根是2。编程输入一个长度不超过100位数字的正整数,输出计算数字乘积根的每一步结果。
输入
3486784401
输出
3486784401
516096
1620
12
2
如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,从给出的数据中统计出既是回文数又是素数的数的个数。
样例输入
7 12 10 11 121 1331 10301
样例输出
3 展开
做一道给10悬赏,谢谢!!!!!!!!急!!!!!
(每一步最好有说明)
求数字的乘积根。正整数的数字乘积这样规定:这个正整数中非零数字的乘积。例如整数999的数字乘积为9*9*9,得到729;729的数字乘积为7*2*9,得到126;126的数字乘积为1*2*6,得到12;12从数字乘积为1*2,得到2。如此反复取数字的乘积,直至得到一位数字为止。999的数字乘积根是2。编程输入一个长度不超过100位数字的正整数,输出计算数字乘积根的每一步结果。
输入
3486784401
输出
3486784401
516096
1620
12
2
如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,从给出的数据中统计出既是回文数又是素数的数的个数。
样例输入
7 12 10 11 121 1331 10301
样例输出
3 展开
展开全部
对不起,给代码是不好的,我先讲一讲算法。我的算法不用函数,你可以改一改
1、题目中说长度不超过100位,所以只能用字符做,
repeat
read(a);//a是字符
b:=ord(a)-40;//转化为数字
s:=s*b;//累乘
until eoln;//直到一行结束
这是核心代码,外面在套一个repeat,until就是直到s<10为止,注意s清零
2、这道题,,,加函数也可以不加也罢
输入一个数,不可以用字符串,要将他转换为字符串。
readln(n)//n是整形
val(n,s);将n转换为字符串
{然后很简单,设j为length(s),i就是1,只要i和j不碰头(即i和j相差1以上),i+1,j-1,碰头了就结束了,没碰头,就是说中途发现不一样了,就不是回文数}
repeat
输入
设j为length(s),i就是1
while i和j相差不超过1 do//j就是s的长度,从最后开始搜索
begin
如果i和j发现不同
begin
哨兵改为真;//t就是哨兵,即跳出循环后还要跳出
跳出循环
end;
end;
如果t成是真,那么跳出本次循环;//如果这个数是true,那么说明5行之前的判断成立,后面
//就不需要判断了,直接跳出本次循环,即continue
判断素数
如果是素数,那么恭喜,找到了,
计数器+1;
until eoln;//第一个数字别管,因为只有一行,一行结束就读完
输出计数器
如果要加函数,就要把中间的代码改为一个回文函数和一个素数函数,
判断函数一般从2to round(trunc(n)) do 这里就不写了
如果不懂,可以追问,请采纳
1、题目中说长度不超过100位,所以只能用字符做,
repeat
read(a);//a是字符
b:=ord(a)-40;//转化为数字
s:=s*b;//累乘
until eoln;//直到一行结束
这是核心代码,外面在套一个repeat,until就是直到s<10为止,注意s清零
2、这道题,,,加函数也可以不加也罢
输入一个数,不可以用字符串,要将他转换为字符串。
readln(n)//n是整形
val(n,s);将n转换为字符串
{然后很简单,设j为length(s),i就是1,只要i和j不碰头(即i和j相差1以上),i+1,j-1,碰头了就结束了,没碰头,就是说中途发现不一样了,就不是回文数}
repeat
输入
设j为length(s),i就是1
while i和j相差不超过1 do//j就是s的长度,从最后开始搜索
begin
如果i和j发现不同
begin
哨兵改为真;//t就是哨兵,即跳出循环后还要跳出
跳出循环
end;
end;
如果t成是真,那么跳出本次循环;//如果这个数是true,那么说明5行之前的判断成立,后面
//就不需要判断了,直接跳出本次循环,即continue
判断素数
如果是素数,那么恭喜,找到了,
计数器+1;
until eoln;//第一个数字别管,因为只有一行,一行结束就读完
输出计数器
如果要加函数,就要把中间的代码改为一个回文函数和一个素数函数,
判断函数一般从2to round(trunc(n)) do 这里就不写了
如果不懂,可以追问,请采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询