收藏 分享(赏)

循环程序.doc

上传人:hwpkd79526 文档编号:9402276 上传时间:2019-08-05 格式:DOC 页数:17 大小:128.50KB
下载 相关 举报
循环程序.doc_第1页
第1页 / 共17页
循环程序.doc_第2页
第2页 / 共17页
循环程序.doc_第3页
第3页 / 共17页
循环程序.doc_第4页
第4页 / 共17页
循环程序.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、PASCAL 语言教程第三章 循环程序在编程中经常遇到需要多次规律相同的重复处理,这就是循环问题。Turbo Pascal 采用不同的循环方式来实现,常用的环循有三种: for、repeat 、while. 第一节 for 循环for 循环是一种自动计数型循环。例 3.1 试打印出 120 的自然数。解: 用 a 代表 120 各数,同时也用 a 兼作计数,以控制循环次数; 让 a 从 1 开始; 输出 a; a 自动计数(加 1),如果未超越所规定的循环范围则重复步骤,否则结束循环。Pascal 程序 :Program Exam12;Var a: byte;Beginfor a:=1 to

2、20 doWriteln (a);ReadlnEnd.程序中 for a:=1 to 20 do Writeln (a); 是 for 循环语句。for 循环语句有两种格式:(1) for 循环变量:=初值 To 终值 do 语句; (2) for 循环变量:=初值 downto 终值 do 语句;第(1)种格式的初值小于等于终值,循环变量值按自动加 1 递增变化;第(2)种格式的初值大于或等于终值,循环变量值按自动减 1 递减变化。for 循环是 (以递增 1 或以递减 1) 计数型循环。比如: 若将例 3.1程序改为倒计数 (递减)循环,则输出 201 的自然数数: Program Exa

3、m31;Var a: byte;Beginfor a:=20 downto 1 doWriteln(a) ;ReadlnEnd.例 3.2打印出 30 至 60 的偶数。解:方法一:= 1 * GB3 设 a 表示 30 至 60 的所有的数,可用 for 循环列出;= 2 * GB3 用式子 a mod 2=0 筛选出其中的偶数并输出。Pascal 程序:Program ex32;Var a : integer;BeginFor a := 30 to 60 doIf (a mod 2=0) then writeln(a);Readln;End.在这个程序中,for 循环后的循环语句是一个条件

4、分支语句。方法二:我们知道,在式子 a=2*n 中,若 n 取自然数 1、2、3、,时,则 a 依次得到偶数 2、4、6、。因此要想得到 30 至 60 的偶数,就可以让上面式子中的 n 取 15 至 30的自然数就可以了。所以本题还可以按以下步骤处理:= 1 * GB3 设 n 表示 15 至 30 的所有自然数,可用 for 循环列出;= 2 * GB3 用式子 a := 2*n 求出其中的偶数;= 3 * GB3 将结果输出至屏幕。Pascal 程序:Program ex32;BeginFor n := 15 to 30 doBegina := 2*n;Writeln(a);End;Re

5、adln;End.例 3.3自然数求和:编一个程序,求从 1 至 100 的自然数的和。解: 令 S0; 令 a 表示 1 至 100 的自然数,用循环列出; 将这些自然数用公式 S:=S+a 逐一累加到 S 中去;= 4 * GB3 循环结束后,S 即为 1 至 100 的自然数的和,输出即可。Pascal 程序:Program ex33;var s,a : integer;BeginS := 0;For a := 1 to 100 doS := S+a;Writeln(S=,S);Readln;End.例 3.4一个两位数 x,将它的个位数字与十位数字对调后得到一个新数 y,此时 y 恰好

6、比 x 大 36,请编程求出所有这样的两位数。解: 用 for 循环列举出所有的两位数,x 为循环变量; 用公式 a:= x div 10 分离出 x 的十位数字; 用公式 b:= x mod 10 分离出 x 的个位数字; 用公式 y:= b*10+a 合成新数 y;= 5 * GB3 用式子 y-x=36 筛选出符合条件的数 x 并输出。Pascal 程序:Program ex34;BeginFor x := 10 to 99 doBegina := x div 10;b := x mod 10;y := b*10+a;if y-x=36 then writeln(x);End;Readl

7、n;End.例 3.5 把整数 3025 从中剪开分为 30 和 25 两个数,此时再将这两数之和平方,(30+25)2=3025 计算结果又等于原数。求所有符合这样条件的四位数。解:设符合条件的四位数为 N,它应当是一个完全平方数,用(a*a)表示。 为了确保 N=(a*a)在四位数(10009999)范围内,可确定 a 在 3299 循环; 计算 N=a*a;将四位数 N 拆分为两个数 n1 和 n2; 若满足条件(n1+n2)*(n1+n2)N 就输出 N 。Pascal 程序 :Program Exam35;Var N, a, x,n1,n2: Integer;Begin for a:

8、=32 to 99 dobegin N:=a*a;n1:= N div 100; 拆取四位数的前两位数n2:= N-n1*100; 拆取四位数的后两位数X:=n1+n2;if x*x=N then writeln (N);end;ReadlnEnd.例 3.6用“*”号打印出如下的长方形图案。*解: 上面给出的图例共有 4 行,我们可以用一个循环控制行的变化; 在每行中又有 9 列,我们可以在前面控制行的循环中再套一个循环来控制列的变化。Pascal 程序:Program ex36;BeginFor a := 1 to 4 do 外循环控制行的变化BeginFor b := 1 to 9 do

9、 内循环控制列的变化write(*);Writeln; 输出一行的“*”后换行End;Readln;End.程序中的循环对于 a 的每个值都包含着一个 b=(19)次的内循环。外循环 for a 将内循环 for b 包含在里面,称为 for 循环的嵌套。嵌套形式如:for a:=n1 to n2 do for b:=m1 to m2 do 循环体语句; 例 3.7 打印出九九乘法表:解:设 a 为被乘数,范围为 19;b 为乘数,范围为 1a;乘式为 a*b=(a,b 的乘积) ,则a=1: b=1 a 1*1=1a=2: b=1 a 2*1=2 2*2=4a=3: b=1 a 3*1=3

10、3*2=6 3*3=9a=4: b=1 a 4*1=4 4*2=8 4*3=13 4*4=16: : a=9 b=1a 9*1=9 9*2=18 9*9=81从上面分解的横行中看到共有 9 行,这里的“行”数变化与 a 的变化从 19 相同,可用 a 控制“行 ”的循环;每“行”里面相乘的次数与 b 的范围相关,由 b 控制每“行”里面的“内部”循环;内循环被包含在最里层,执行完每“行”的内部循环,就到下一“行”去执行新“行”里面的循环,每“行”都拥有形式相同的( b=1a )内循环。即每到一“行”都要执行该“行”的内循环。这里所指的“行”可以理解成抽象的行,不一定是实际上具体对应的行,可以是

11、一个处理“块”。Pascal 程序 :Program Exam37;Var a,b: byte;Beginfor a:=1 to 9 do 外循环 beginfor b:=1 to a do 内循环 write(a,* ,b,= ,a*b, :3);writelnend;ReadlnEnd.根据这种格式还可以实现多层循环嵌套,例如:for a:=n1 to n2 do for b:=m1 to m2 do for c:=k1 to k2 do 循环体语句; 例 3.8从七张扑克牌中任取三张,有几种组合方法?请编程输出所有组合形式。解:设每次取出三张分别为 a,b,c。用三重循环分别从 1 7

12、的范围里取值;为了排除取到重号,用(a-b)*(b-c)*(a-c) 0 进行判断。Pascal 程序:program Exam38;const n=7;var a,b,c,t: integer;Begint:=0;for a:=1 to n dofor b:=1 to n dofor c:=1 to n doif (a-b) * (b-c) * (a-c) 0 thenBegininc (t); writeln (a:3, b:3, c:3)End;writeln ( total:, t :5);readlnEnd.例 3.9 数学上把除了 1 和它本身,没有别的数能够整除它的自然数叫做素数

13、 (或质数)。现在由键盘输入一个自然数 N,编程判断 N 是否是素数,是则输出“Yes”,否则输出“No”。解:根据定义,对于给定的自然数 N,只需判断除 1 和它本身外,还有没有第三个自然数即可。 令 K 从 1 循环至 N; 根据 N mod K 是否为 0 可统计 K 的约数的个数; 若 N 的约数的个数超过 2 个,则判定 N 不是素数。Pascal 程序 :Program Exam39;Var n, m,k,t: integer;Beginwrite(N=);ReadLn(N);t:=0;for k:=1 to N do 外循环 if N mod k=0 then t := t+1;

14、 如果 N 是奇数 if t2 then writeln(No)else writeln(Yes);Readln;End.程序中的变量 yse 为布尔(或逻辑)类型(Boolean)。布尔值只有两个:True(真) False(假) 布尔值与条件判断结果为真(条件成立) 或为假(条件不成立)的作用相同,常用于条件语句和循环语句中。上面程序中用 if yes and (t mod 7=0) then writeln;实现每行打印七个素数换行,程序中布尔变量 yes 为真,在逻辑上表示是素数;关系式( t mod 7=0) 的值为真时,表示该行输出素数巳是个;用 and 将这两个“条件”连起来是作

15、一种布尔(逻辑) 运算。Pascal 共有四种逻辑运算符: and (与) 两条件都为 True 时,其结果值为 True;否则为 False; or ( 或) 两条件中只要有一个为 True ;其结果值为 True;否则为 False; xor ( 异或) 两条件的逻辑值不相同时,其结果值为 True;否则为 False; not (非) 条件为 True 时,其结果值为 False;否则为 True;( 取反)习题 3.1:1.打印出 1 至 20 的平方数表。2.打印出 100 至 200 之间的奇数。3. 鸡兔同笼(用 for 循环程序完成 )4.一辆快车和一辆慢车开往同一地点,快车票

16、价为 18 元,慢车票价为 13. 5 元,共售出400 张,共计 5940 元,求快车票和慢车票各多少张?.5.求出能被 5 整除的所有四位数的和。6.在下面式子中的二个内填入一个合适的同样的数字,使等式成立。3*6528=3*82567.有一个三位数,它的各位数字之和的 11 倍恰好等于它自身,请编程求出这个三位数。8.在自然数中,如果一个三位数等于自身各位数字之立方和,则这个三位数就称为是水仙花数。如:153=1 3+53+33,所以 153 是一个水仙花数。求所有的水仙花数。9.编程序打印出下列图案:平行四边形 等腰三解形 菱形* * * * * * * * * * *10.编程打印出

17、如下图案:122233333444444455555555511.有三种明信片:第一种每套一张,售价 2 元;第二种每套一张,售价 4 元; 第三种每套 9 张,售价 2 元。现用 100 元钱要买 100 张明信片,要求每种明信片至少要买一套,问三种明信片应各买几套?请输出全部购买方案。12.某人想把一元钱换成伍分、贰分、壹分这样的零钱, 在这三种零钱中每种零钱都至少各有一个的情况下,共有多少种兑换方案。并打出这些方案。13.14. 输出 100 以内的全部素数,要求每行显示 5 个。15.A、B 两个自然数的和、差、积、商四个数加起来等于 243,求 A、B 两数。16.百钱买百鸡:今有钱

18、 100 元,要买 100 只鸡,公鸡 3 元一只,母鸡 1 元一只,小鸡1 元 3 只,若公鸡、母鸡和小鸡都至少要买 1 只,请编程求出恰好用完 100 元钱的所有的买鸡方案。第二节 repeat 循环Repeat 循环是直到型循环。试将上一节的例 3.1(打印出 120 的平方数表) 程序改为 repeat 循环:Program Exam31_1;Var a: byte;Begina:=1; writeln ( a : 8 , a*a : 8 ) ;repeatwriteln ( a :8,a*a : 8);inc(a); 改变 a 的值 Until a20;ReadlnEmd.程序中的

19、Repeat 循环格式为 :repeat循环体语句;until 条件表达式; 直到条件为真Repeat 循环首先执行由 Repeat 和 Until 括起来的循环体语句,然后检查 Until 后面的条件表达式:如果表达式结果为假,则继续执行循环体,接着继续检查 Until 后面的条件表达式,如此反复执行直到这个表达式结果为真时结束循环。Repeat 循环体语句必须有能改变 Until 后面条件表达式值的语句,并最终使这个条件表达式的值为真,使循环自动结束。程序中 inc (a) 指令相当于 a : =a+1,常用的同类指令格式如下:(1) inc(x) 等同 x:=x+1;(2) inc(x,

20、 n) 等同 x:=x+n;(3) dec(x) 等同 x:=x1;(4) dec(x,n) 等同 x:=xn;例 3.10求两个自然数 M 和 N 的最大公约数。解:若自然数 a 既是 M 和约数,又是 N 的约数,则称 a 为 M 和 N 的公约数,其中最大的称为最大公约数。为了求得最大公约数,可以从最大可能的数(如 M 或 N)向下寻找,找到的第一个公约数即是最大公约数。Pascal 程序:Program ex310;Begina := N+1;Repeata := a-1;Until (M mod a=0) and (N mod a=0);writeln(a);Readln;End.例

21、 3.11校体操队到操场集合,排成每行 2 人,最后多出 1 人 ;排成每行 3 人,也多出 1 人;分别按每行排 4,5,6 人,都多出 1 人;当排成每行 7 人时,正好不多。求校体操队至少是多少人 ?解:设校体操队为 X 人,根据题意 X 应是 7 的倍数,因此 X 的初值为 7,以后用 inc(x,7)改变 X 值;为了控制循环, 用逻辑变量 yes 为真(True) 使循环结束;如果诸条件中有一个不满足, yes 的值就会为假(false),就继续循环。Pascal 程序 :program Exam311;var x: word; yes : boolean;beginx:=0;re

22、peatyes :=true; inc(x,7);if x mod 2 1 then yes:=false;if x mod 3 1 then yes:=false;if x mod 4 1 then yes:=false;if x mod 5 1 then yes:=false;if x mod 6 1 then yes:=false;until yes; 直到 yes 的值为真 writeln(All =, x) ; readlnend.程序中对每个 X 值,都先给 Yes 赋真值,只有在循环体各句对 X 进行判断时,都得到“通过”(此处不赋假值)才能保持真值。例 3.12从键盘输入一个整

23、数 X(X 不超过 10000),若 X 的各位数字之和为 7 的倍数,则打印“Yes ”,否则中打印 “No”。解:本题考察的是数字分离的方法,由于 X 的位数不定,所以以往的解法不能奏效,这是介绍一种取余求商法。(1)用 X mod 10 分离出 X 的个位数字;(2)用 X div 10 将刚分离的个数数字删除,并将结果送回给 X;(3)重复(1)(2)直到 X0。Pascal 程序:Program ex12;var x,a,s : integer;begins := 0;repeata := x mod 10;x := x div 10;s := s+a;until x=0;if s

24、mod 7=0 then writeln(Yes)else writeln(No);Readln;end;例 3.13求 1992 个 1992 的乘积的末两位数是多少?解:积的个位与十位数只与被乘数与乘数的个位与十位数字有关,所以本题相当于求1992 个 92 相乘,而且本次的乘积主下一次相乘的被乘数,因此也只需取末两位参与运算就可以了。Pascal 程序:Program ex313;var a,t : integer;Begina := 1;t := 0;repeatt := t+1;a := (a*92) mod 100;until t=1992;writeln(a);Readln;En

25、d.例 3.14尼科彻斯定理:将任何一个正整数的立方写成一组相邻奇数之和。如: 3 3=7+9+11=27 43=13+15+17+19=64解:从举例中发现:(1) n3 正好等于 n 个奇数之和;(2) n 个奇数中的最小奇数是从 1 开始的奇数序列中的第 m 个奇数,与 n 的关系为: m=n (n 1) / 2+1。(3) 奇数序列中第 m 个奇数的值为 x,且 x= 2m1,比如: n=3 时,m=3(3-1)/2+1=4,即 3 个奇数中最小的奇数是奇数序列中的第 4 个,它的值为 x=(2m-1)=7, 所以:33=7+9+11。(4) 从最小的奇数值 x 开始,逐个递增 2,连

26、续 n 个,用 t 从 1 开始计数,直到 t=n 为止。Pascal 程序 :Program Exam35;Var n, m,x,t,s : integer;Beginwrite(input n:); readln(n); 输入 N m:=(n*(n-1) div 2)+1; 找到第 m 个奇数 x:=2*m-1; t:=1; 算出第 m 个奇数的值 x,是所求的第一个write(n*,n,*,n,=,x) ;输出第一个s:=x; 用 S 计算和 if n1 thenRepeatinc(x,2); 计算下一个奇数 write (+ ,x) ; 加上下一个奇数 inc (t ); inc (s

27、,x); 计个数并累加和 Until t=n; 直到 n 个 Writeln (= ,s ) ;ReadlnEnd.例 3.15猜价格:中央电视台的“幸运 52”栏目深受观众喜爱,其中的 “猜商品价格”的节目更是脍炙人口,现在请你编一个程序模拟这一游戏:由计算机随机产生 200 至 5000之间的一个整数,作为某件商品的价格,然后由你去猜是多少,若你猜的数大了,则计算机输出提示“Gao ”,若你猜的数小了,则计算机输出提示“Di”,然后你根据提示继续猜,直到你猜对了,计算机会提示“Ok ”,并统计你猜的总次数。解:本题的游戏规则大家都清楚,要完成程序,必须把处理步骤理清:(1)用随机函数 Ra

28、ndom 产生 200 至 5000 之间的一个整数 X;(2)你猜一个数 A;(3)若 AX,则输出“Gao”;(4)若 AX,则输出“Di”;(5)若 AX 则输出“Ok”;(6)重复(2)(3)(4)(5)直到 A=X。Pascal 程序:Program ex315;Var t,X,a : integer;BeginRandomize;X := Random(4800)+200;t := 0;Repeatt := t+1;write(,t, Qing cai yi ge zheng shu : );readln(a);if ax then writeln(Gao);if a F 就做 (

29、J=J+1,T=H-J);当 4*T+2*J=F 时,说明所推算的 J 和 T 是正确的,应结束循环,并输出 T, J。Pascal 程序:Program Exam38;Const H=30;F=90;Var J,T : integer;BeginJ:=0; T:=HJ; 初始时让 J 从 0 开始计算 While 4*T+2*JF do 当条件为真就做 do 后面的循环体 begin inc(J); 递推改变 J 值 T:=HJ 计算兔的只数 end;Writeln(T=,T, :6, J=, J ) ;ReadlnEnd.程序中采用 While 当型循环,While 循环语句的格式为:Wh

30、ile 条件式 do 语句;其中 do 后面的“语句”是被重复执行的,称为循环体;若循环体是多个语句, 必须用begin-end 包起来成为复合语句。While 循环首先判断条件式,当条件式的值为真就执行 do 后面的语句(循环体)。While 的循环体内也必须包含能改变控制变量取值语句, 影响条件式的值, 最终使条件式为 false (假), 才能结束循环。例 3.9 输入任一的自然数 A, B, 求 A , B 的最小公倍数。解:这里采用适合计算机查找的方法: 设 D 是它们的最小公倍数。先找出 A, B 当中的较大者并存放在 A 中, 将较小者存放在 B 中, 让 D=A, 当 D 能够

31、整除 B 时, 则 D 是所求的最小公倍数;当 D 不能整除 B,就逐次地让 D 增加 A。例如:A=18, B=12, 步骤如下: 让 D=A (D=18) 当(D mod B)0 为真时 ( D 不能整除 B ) 就做 D=D+A, 重复; 当(D mod B)0 为假时结束循环,并输出 D。Pascal 程序:program Exam39;var a,b,d,t : word;beginwrite(input a,b: ); readln(a , b);if a0 do 当条件为真时就做 do 后面的语句 inc(d,a);writeln(, a, , , b, =, d) ;readl

32、nEnd.Pascal 语言的三种基本循环方式, for 循环对循环范围有明确规定, 且循环变量只能是递增加 1 或递减 1 自动计数控制; 而 repeat-until 循环和 while-do 循环比较灵活, 只要对条件表达式的值能控制满足一定要求就能组成循环, 但在循环体中必须有改变循环变量值的语句, 使条件判断(逻辑值)最终为 True 或 flase, 让循环能够终止。例 3.10求自然数 A, B 的最大公约数。解:采用如下方法步骤:(1)求 A 除以 B 的余数;(2)当余数0 就做 n=a; a=b; b=n mod b, 重复(1)和(2);(3)当余数=0 就结束循环,并输

33、出 b 值。比如 a=18, b=12 时,处理步骤为:(1) = ,得余数为 6;(2) 此余数不为零 ,让 a = 12, b = 6;(3) 重复 = , 得余数为 0;(4) 结束循环,输出 6(余数为零时的 b 值即是所求的最大公约数)。此方法称为辗转相除法求最大公约数。Pascal 程序:program Exam310;var a,b, n : word;beginwrite(input a,b: ); readln (a,b);write(, a, , , b, )= ) ;while a mod b 0 dobeginn:=a; a:=b; b:=n mod b;end;wri

34、teln(b);readlnEnd.例 3.11将一根长为 369cm 的钢管截成长为 69cm 和 39cm 两种规格的短料。在这两种规格的短料至少各截一根的前提下, 如何截才能余料最少。解:设两种规格的短料分别为:规格为 69cm 的 x 根,可在 1 至(369-39)/69 范围循环取值;规格为 39cm 的 y 根,用 y = (369-69*X)/39)计算;余料 R=369-69*X-39*Y。设最小余料的初始值 min=369;在 X 循环范围内,每一个 X 值都计算出对应的 Y 和 R;如果 Rmin, 就将 R 存入 min, x 存入 n, y 存入 m,记录余料最小时的

35、 x 和 y ;重复步骤,当 x 值超出 ((36939)/ 69) 时结束循环。Pascal 程序:program exam311;var x,y,r,min,n,m,a: integer;beginmin:=369;a:=(369-39) div 69; x:=1;while x0 then begins:=50*a+35*b+25*c;if s=225 then writeln(n:3,a:3,b:3,c:3,s:5);end;inc(b);end;inc(a);end;dec(n);end;readlnend.程序运行结果获得两组填数答案。如果改用 for 循环,程序将更加简明:Pro

36、gram Exam312_1;Var a,b,c,n,s : Integer;BeginWriteln(N:3, A:3, B:3, C:3, S:5) ;for n:=8 downto 6 do N 取值 8,7,6,并分别代表甲、乙、丙 for a:=0 to 4 do 中 50 环的可能范围 for b:=0 to 6 do 中 30 环的可能范围 begin c:=n-a-b; 计算中 25 环的子弹数 if c0 then begin 如果不是负数 s:=50*a+35*6+25*c; 计算总成绩 if s=225 then writeln(n:3,a:3,b:3,c:3,s:5);

37、endend;readlnEnd.习题 3.31.求 S= 1-1/2 +1/3-1/4+1/5-1/6+ (求前 N 项的和)2. Faibonacci 数列前几项为: 0,1,1,2,3,5,8,其规律是从第三项起, 每项均等于前两项之和。求前 30 项, 并以每行 5 个数的格式输出。3.小球从 100 高处自由落下,着地后又弹回高度的一半再落下。求第 20 次着地时, 小球共通过多少路程?4.某登山队员第一天登上山峰高度的一半又 24 米; 第二天登上余下高度的一半又 24米;每天均如此。到第七天,距山顶还剩 91 米。求此山峰的高度?5.给出某整数 N,将 N 写成因数相乘的形式。如

38、: N=12,输出: 12=1*2*2*3.6.出售金鱼者决定将缸里的金鱼全部卖出。第一次卖出全部金鱼的一半加二分之一条;第二次卖出剩余的三分之一加三分之一条金鱼;第三次卖出余下金鱼的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条金鱼。还剩下 11 条金鱼。当然,出售金鱼时都是整数条,不能有任何破损。求缸里原有的金鱼数?7.外出旅游的几位朋友决定次日早晨共分一筐苹果。天刚亮,第一个人醒来,他先拿了一个,再把筐里的八分之一拿走;第二个人醒来,先拿两个,再把筐里的八分之一拿走;第三个人醒来,先拿三个,再拿走筐里的八分之一;每个人依次照此方法拿出各人的苹果,最后筐里的苹果全部拿完,他们每人所拿到的苹果数正巧一样多。求原先筐里的苹果数和人数。8.图中由 6 个圆圈构成三角形,每条边上有三个圈, 将自然数 1-6 不重复地填入各圆圈位置上,使每条边圆圈上的数字之和相等,请编程输出所有的填法。9请编程显示出下面数字金字塔图形:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报