作业帮 > 综合 > 作业

产生数 pascal内容:给出一个整数n(n≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/29 02:57:50
产生数 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
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≤2000)和m个变换规则(m≤15).规则:① 1个数字可以变换成另1个数 pascal题:求N个数的和,给出一个正整数N,可求出从1开始的这N个数的全部各个数位上的数字之和. 输入n个整数,请找出最小数所在的位置,并把它与第一个数对调.(pascal 数组) PASCAL难题题目描述在n个数组成的序列a中,任意选出m个数字使这m个数的极差(这m个数中最大值与最小值之差)最小。输 pascal题目:已知n,求出1至n之间(包括n),满足每位数字之和为13的所有整数,每行输出8个满足条件的数 输入一个正整数n(1< n ≤10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,写一函数,实现以上功能,在主函数中输入n个整数和输 pascal选数已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加 几个关于数论的证明!1 证明:任意给出5个整数中,必有3个数之和被3整除.2证明:任意给定自然数M,一定存一个M的倍数N pascal程序 定义一函数digit(n,k) 使得他回送整数n的从右边开始数第k个数字的值 1.满足|mn|+|m-n|=1的整数对(m,n)的个数是? 编写猜数游戏的Java程序. 猜数游戏的规则如下: 1)系统产生一个[0,100]的随机整数,设为m. 2)提示用户