产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零.例如:n=234,m=2规则为2 → 53 → 6上面的整数234经

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 11:08:21
产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零.例如:n=234,m=2规则为2 → 53 → 6上面的整数234经

产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零.例如:n=234,m=2规则为2 → 53 → 6上面的整数234经
产生数 pascal
内容:
给出一个整数n(n≤2000)和m个变换规则(m≤15).
规则:
① 1个数字可以变换成另1个数字;
② 规则中,右边的数字不能为零.
例如:n=234,m=2规则为
2 → 5
3 → 6
上面的整数234经过变换后可能产生出的整数为(包括原数)
234 534 264 564
共4种不同的产生数
求经过任意次的变换(0次或多次),能产生出多少个不同的整数.
仅要求输出不同整数个数.
输入
输入格式为
n
m
x1 y1
x2 y2
… …
xn yn
输出
输出格式为一个整数(满足条件的整数个数).
输入输出样例
输入:
234
2
2 5
3 6
输出:
4

产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零.例如:n=234,m=2规则为2 → 53 → 6上面的整数234经
program p2002i3;
const
v:array['0'..'9']of longint=(0,1,2,3,4,5,6,7,8,9);
ch:array[0..9]of char='0123456789';
var a:array[0..9,0..9]of boolean;
b:array[1..10000]of longint;
c:array[0..9]of longint;
tmp:array[1..1000] of integer;
n,num,s,p,total:longint;
shuru:string;su:longint;
procedure init;
var l,i,j,k:longint;s:string;
begin
readln(s);
shuru:=s;
su:=pos(' ',s)-1;
k:=pos(' ',s);
l:=length(s)-k;
k:=k+1;
repeat
j:=1;
for i:=1 to l-1 do
j:=j*10;
n:=n+(ord(s[k])-ord('0'))*j;
l:=l-1;
k:=k+1;
until l=0;
end;
procedure search;
var x,y,i,j,k:longint;
begin
fillchar(a,sizeof(a),0);
for i:=1 to n do
begin
readln(x,y);
a[x,y]:=true;
end;
for k:=0 to 9 do
for i:=0 to 9 do
for j:=0 to 9 do
a[i,j]:=a[i,j] or(a[i,k] and a[k,j]);
for i:=0 to 9 do
a[i,i]:=true;
fillchar(c,sizeof(c),0);
for i:=0 to 9 do
for j:=0 to 9 do
if a[i,j] then inc(c[i]);
end;
procedure mul(a,b:string; var c:string);
var
i,j,g,p,k:integer;
begin
while (length(a)>1)and(a[1]='0') do delete(a,1,1);
while (length(b)>1)and(b[1]='0') do delete(b,1,1);
p:=length(a)+length(b);
for i:=1 to p do
tmp[i]:=0;
for i:=1 to length(a) do
for j:=1 to length(b) do
begin
k:=p-i-j;
inc(tmp[p-k] ,v[a[i]]*v[b[j]] mod 10);
inc(tmp[p-k-1],v[a[i]]*v[b[j]] div 10);
end;
g:=0;
c:='';
for i:=p downto 1 do
begin
c:=ch[(tmp[i]+g) mod 10]+c;
g:=(tmp[i]+g) div 10;
end;
while (length(c)>1)and(c[1]='0') do delete(c,1,1);
end;
procedure outit;
var i,j,k:longint; x,y,z:string;s:longint;
begin
s:=ord(shuru[1])-ord('0');
z:=chr(c[s]+ord('0'));
for i:=2 to su do
begin
s:=ord(shuru[i])-ord('0');
if c[s]

产生数pascal程序给出一个整数n(n 产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数字;② 规则中,右边的数字不能为零.例如:n=234,m=2规则为2 → 53 → 6上面的整数234经 给出一个整数n,输出所有比n小的且是7的倍数的数 用pascal做 给出整数n,接下来有n行,每行一个整数,求最小值 用pascal做 pascal程序设计 输入一个整数n,n 给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数) 求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数. 用 Pascal 编写一个程序将十进制整数n转换为二进制数.用 Pascal 编写加说明 给出一个整数n,接下来有n个整数,你要求出这n个整数中的最大值.用pascal做 给出一个整数n,其中n小于等于10000请求出1~n中,是2的倍数,或者是3的倍数,或者是5的倍数的数的总和用pascal做 给出一个n,接下来有n行,每行一个整数,你要计算这n个整数的和 用pascal做 给出一个n,接下来有n行,每行一个整数,你要计算这n个整数的和 用pascal做 给出数列:4,7,10,13,16,19,22,25...,再给出一个整数n,让你求出列前n项的和,用pascal解 pascal打印数字图形读入一个整数n(n pascal编程给出一个n,求前n个奇数的总和 输入 一行,一个整数n 输出 一行,表示总和 折腾“阶乘”pascal内容:输入一个整数n(1000>=n>=0)输出n的阶乘各个位的数相加的和y,最后再输出T或F,代表y是否为素数.输入一个整数n(1000>=n>=0)10输出n的阶乘各个位的数相加的和y,最后再 数字平方和 pascal给出一个自然数N(1 给出一个整数n,让你判断n是否是素数,如果n是素数,则输出 yes 否则输出 no 用pascal语言做题