当前位置: 首页 > news >正文

2025级SYUCT-ACM新生第二次训练 题解

目录

  • A.循环练习1
  • B.循环练习3
  • C.循环练习4
  • D.循环练习5
  • E.循环练习B
  • F.循环练习C
  • G.水仙花数
  • H.幸运UID
  • I.奇偶分离
  • J.小B的乘法口诀
  • K.数字模式探索者
  • L.小B的米饭
  • M.九九乘法表
  • N.A
  • O.小B跑马拉松
  • P.找最大值
  • Q.奶龙的质数判断
  • R.小明的口袋
  • S.有精神分裂症的小明
  • T.abc
  • U.M?ACM!
  • V.数字翻转
  • W.快乐数
  • X. only one!

A.循环练习1

111nnn用循环遍历,将所有奇数(%2==1\%2 == 1%2==1)的数输出。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);for(int i = 1; i <= n; i++){if(i % 2 == 1) printf("%d ", i);}printf("\n");return 0;
}

B.循环练习3

用一个变量sumsumsum记录平方和,初始为000,用循环从111nnn遍历,每次将i∗ii * iii累加到sumsumsum,最后输出。

结果会爆intintint,要开longlonglong longlonglong

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);long long sum = 0; // 存平方和for(int i = 1; i <= n; i++){sum += i * i;}printf("%lld\n", sum);return 0;
}

C.循环练习4

阶乘就是1×2×3×...×(n−1)×n1 \times 2 \times 3 \times ... \times (n - 1) \times n1×2×3×...×(n1)×n,因此用一个变量resresres存结果,赋初值为111,用循环遍历从111nnn的每一个数,每次累乘到resresres,最后输出。

结果会爆intintint,要开longlonglong longlonglong

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);long long res = 1; // 存累乘的结果for(int i = 1; i <= n; i++){res *= i;}printf("%lld\n", res);return 0;
}

D.循环练习5

这题要输出的东西有行也有列,因此要用双重forforfor循环。

观察样例可以发现,这题的目的就是:第一行输出nnn个数,第二行输出n−1n - 1n1个数,…,第n−1n - 1n1行输出222个数,第nnn行输出111个数。

因此,可以用第一重forforfor循环来表示当前输出的是第几行,第二重forforfor循环来控制这一行输出的数的个数。

显然,对于第iii行,要输出n−i+1n - i + 1ni+1个数,只需让内层forforfor循环执行n−i+1n - i + 1ni+1次,每次输出一个数即可。

因为每次输出的数都是从111开始向上累加的,因此可以在循环外面初始化一个变量,给其赋初值为111,每次输出这个变量,然后给这个变量+1+1+1,就变成了下次该输出的数。

对于题目中的补000操作,用占位符自动补位即可,不会的请移步至讲义。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);int t = 1;for(int i = 1; i <= n; i++){ // 当前输出的是第 i 行for(int j = 1; j <= n - i + 1; j++){ // 第 i 行要输出 n - i + 1个数printf("%02d", t); // 每次输出当前的数t++; // 将 t 改成下一个要输出的数}printf("\n"); // 输出下一行之前要换行}return 0;
}

E.循环练习B

用一个变量存分母,赋初值为111,用一个变量存结果,赋初值为000,循环nnn次,每次给1分母\frac{1}{分母}分母1累加到结果,然后给分母+3分母+3分母+3即可。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);double sum = 0; // 存累加的结果int x = 1; // 存每次的分母for(int i = 1; i <= n; i++){ // 第 i 项sum += 1.0 / x; // 将 1 / x累加到结果x += 3; // 每次分母 + 3}printf("%.2lf\n", sum); // 输出结果return 0;
}

F.循环练习C

用一个变量cntcntcnt记录分数大于等于606060的人数,先输入一个数nnn,然后循环nnn次,每次输入一个数,如果这个数≥60\ge 6060,就给cntcntcnt加一,最后输出cntcntcnt的值即可。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);int cnt = 0; // 记录分数大于等于 60 的人数for(int i = 0; i < n; i++){ // for循环n次,输入n个数int x;scanf("%d", &x); if(x >= 60) cnt++; // >= 60 的数 + 1}printf("%d\n", cnt); // 输出结果return 0;
}

G.水仙花数

就是从100遍历到999,然后判断这个数和它三个位(个位、十位、百位)上面的立方和相等不相等,相等就输出

解法1:一重for循环从100~999遍历,对于每个i进行判断,用while循环取出它的每一位,用一个变量sum记录立方和,每次给sum初始化为0,不会请跳转至讲义。

这里需要注意,一定不要直接对i进行操作,因为while循环中有个操作i /= 10,不管i等于几,出while循环的时候一定是0,再i++i变成1,然后再whilei又变成0…就死循环了,所以一定要用一个变量来代替i来进行取位的操作(int t = i; while(t){...}

ACcode1

#include<stdio.h>int main(){for(int i = 100; i <= 999; i++){ //i遍历范围中的每一个数int t = i; //用t代替i取位int sum = 0;//记录立方和,这里一定要把sum初始化为0while(t){ //模板,见讲义int x = t % 10;sum += x * x * x;x /= 10;}if(sum == i) printf("%d\n", i); //二者相等就输出,别忘换行}return 0;
}

解法2:三重for循环以此遍历数的百位(i)、十位(j)、个位(k),然后这个数就等于百位*100+十位*10+个位(i*100+j*10+k),立方和就等于i3+j3+k3i^3+j^3+k^3i3+j3+k3,用两个变量分别记录,如果他们俩相等就任意输出一个就可以了

需要注意,这道题是从100~999,所以jk要从0~9遍历

ACcode2

#include<stdio.h>int main(){for(int i = 1; i <= 9; i++){  //百位for(int j = 0; j <= 9; j++){ //十位for(int k = 0; k <= 9; k++){ //个位int sum1 = i * i * i + j * j * j + k * k * k; // sum1记录立方和int sum2 = i * 100 + j * 10 + k; //sum2就是这个数if(sum1 == sum2) printf("%d\n", sum2); //二者相等就输出}}}return 0;
}

H.幸运UID

for循环从1遍历到999999,然后用t代替iwhile循环取出每一位并累加到sum,在一开始定义一个变量记录结果,如果sum能整除n(sum % n == 0),就给结果+1(res++),最后输出结果即可。

ACcode

#include<stdio.h>int main(){int n;scanf("%d", &n);int res = 0;//用res记录结果,一开始一个都没有,所以初始化为0for(int i = 1; i <= 999999; i++){//遍历每一个UIDint sum = 0;//sum记录当前UID的每一位的和,每次记得初始化为0int t = i;//t代替i取位,防止死循环while(t){//板子,见讲义sum += t % 10;t /= 10;}if(sum % n == 0) res++;//如果能整除,就给结果+1}printf("%d", res);//输出结果return 0;
} 

I.奇偶分离

这题就是跑两遍for循环,每次从1~n遍历每一个数,第一遍for循环如果i是奇数(i % 2 != 0)就输出,然后换行,第二遍for循环如果i是偶数(i % 2 == 0)就输出。

ACcode

#include<stdio.h>int main(){int n;scanf("%d", &n);for(int i = 1; i <= n; i++){if(i % 2 != 0) printf("%d ", i);//输出所有的奇数}printf("\n"); //别忘换行for(int i = 1; i <= n; i++){if(i % 2 == 0) printf("%d ", i);//输出所有的偶数}return 0;
}

J.小B的乘法口诀

forforfor循环从111101010遍历iii,每次输出n×in \times in×i即可。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);for(int i = 1; i <= 10; i++){printf("%d ", n * i);}printf("\n");return 0;
}

K.数字模式探索者

因为三位完全平方数的平方根范围为10∼3110 \sim 311031,因此可以用forforfor循环从101010313131遍历所有三位完全平方数的平方根iiii×ii \times ii×i即是那个三位完全平方数,然后取出i×ii \times ii×i的每一位,算出各位的和、积,然后判断其是否符合条件,若和、积都是完全平方数,输出即可。

ACcode

#include <stdio.h>
#include <math.h>int main(){for(int i = 10; i <= 31; i++){int n = i * i; // 三位完全平方数int a = n / 100; // 百位int b = n / 10 % 10; // 十位int c = n % 10; // 个位int sum = a + b + c; // 各位的和int prod = a * b * c; // 各位的积if((int)sqrt(sum) * (int)sqrt(sum) == sum && (int)sqrt(prod) * (int)sqrt(prod) == prod){ // 如果和、积都是完全平方数printf("%d\n", n); // 就输出}}return 0;
}

L.小B的米饭

首先算出nnn个碗中的总米饭数,根据等差数列求和公式,为(1+n)×n2\frac{(1 + n) \times n}{2}2(1+n)×n

接着,循环n−kn - knk次,依次输入剩余的n−kn - knk碗中米饭的数量,将其从总米饭数中减掉。

最后输出减掉n−kn - knk碗饭后的结果,即为拿走的米饭的数量。

ACcode

#include <stdio.h>int main(){int n, k;scanf("%d%d", &n, &k);long long sum = (long long)(1 + n) * n / 2; // 初始的米饭数量for(int i = 0; i < n - k; i++){int x;scanf("%d", &x);sum -= x; // 剩余 x 粒米饭,减掉}printf("%lld\n", sum); // 拿走的米饭数量return 0;
}

M.九九乘法表

双重for循环,第一重for循环遍历第二个数,第二重for循环遍历第一个数,第三个数就是i*j,注意观察样例的输出,仔细看他是怎么对齐的,他是对于每个第三个数都向后补到了三位,如果不足3位就在后面补空格,所以要用%-3d,如果你不知道%-3d是什么意思的话,去看讲义吧

ACcode

#include<stdio.h>int main() {for (int i = 1; i <= 9; i++) {//第二个数for (int j = 1; j <= i; j++) {// 第一个数printf("%d*%d=%-3d", j, i, i * j);}printf("\n");//别忘换行}return 0;
}

N.A

观察样例中的AAA找规律,观察第iii行中′.′'.'.′∗′'*'的数量和iii的关系,注意需要特殊处理中间的两行和上面的三个′∗′'*',用forforfor循环遍历并输出即可。

ACcode

#include <stdio.h>int main(){int n;scanf("%d", &n);int h1 = n / 2 - 1; // 第一条横杠所在行int h2 = n / 2;     // 第二条横杠所在行for (int i = 0; i < n; i++) {int dots, width;if(i == 0){ // 顶部的三个点dots = n + 1;width = 3;} else{dots = n - i;width = 2 * i + 5;}for(int j = 0; j < dots; j++) printf("."); // 左侧的 '.'if(i == 0 || i == h1 || i == h2){for(int j = 0; j < width; j++) printf("*");} else{for(int j = 0; j < 3; j++) printf("*"); // 左侧的 '*'for(int j = 0; j < width - 6; j++) printf("."); // 中间的 '.'for(int j = 0; j < 3; j++) printf("*"); // 右侧的 '*'}for (int j = 0; j < dots; j++) printf("."); // 右侧的 '.'printf("\n");}return 0;
}

O.小B跑马拉松

用一个变量nownownow表示当前代码量,一开始为000,用循环模拟两人每天交替写代码的过程,当代码量达到a+1a + 1a+1时,项目结束,循环终止。在循环内写两个分支,分别模拟两人每天写代码的过程,用一个变量flagflagflag来控制该执行哪个分支(该谁写代码),一开始让flag=1flag = 1flag=1表示第一天小B写,写完一天后,用 flag=1−flagflag = 1 - flagflag=1flag 切换到另一个人,如果有人写代码后使now>anow > anow>a,输出即可。

ACcode

#include<stdio.h>int main(){int x, y, a;scanf("%d%d%d", &x, &y, &a);int now = 0; // 当前项目的代码量(行数)int flag = 1; // 1:当前该小B写项目 2:当前该小K写项目while(now <= a){ // while循环,当项目代码行数超过达到 a + 1 行时,项目结束,循环终止if(flag == 1){ // 当前该小B写now += x; // 小B一天写 x 行if(now > a){ // 如果小B完成了项目printf("NO\n"); // 输出NO}}else{ // 当前该小K写now += y; // 小K一天写 y 行if(now > a){ // 如果小K完成了项目printf("YES\n"); // 输出YES}}flag = 1 - flag; // flag在1和0之间交替变换}return 0;
}

P.找最大值

n个数找最大值做法相同,就是多了个以EOF结尾的多组输入。不会的话,看讲义吧

ACcode

#include<stdio.h>int main(){int n;int maxn = 0; //记录最大值while(~scanf("%d", &n)){  // 等同于while(scanf("%d", &n) != EOF)if(n >= maxn) maxn = n; //更新最大值}printf("%d", maxn);//最大值return 0;
}

Q.奶龙的质数判断

就是判断n是不是质数,如果是就输出YES.,不是就输出NO.,判断质数见讲义

ACcode

#include<stdio.h>int main(){int n;scanf("%d", &n);int flag = 1;//定义一个变量来标记if(n == 1){ //注意,n既不是质数,也不是合数,要特判一下printf("NO.");return 0;}for(int i = 2; i * i <= n; i++){ //判断质数if(n % i == 0){   //如果2~sqrt(n)中有n的因子printf("NO.");//那n就不是质数flag = 0; //把标记的值修改break; //既然已经知道n是不是质数了,后面的数也没必要看了,直接跳出循环就可以了}}if(flag == 1) //如果标记没被修改,就说明2~sqrt(n)之间没有n的因子printf("YES."); // 那么就说明n是质数return 0;
}

R.小明的口袋

就按着题目来就行,从2开始以此判断每个数(我代码中的t)是不是质数,如果是质数就装进口袋(sum += t, cnt++),一开始口袋的容量为0(sum = 0),口袋中数的数量也为0cnt = 0)。只需要一个while循环,循环条件就是如果把当前的数放进口袋能装下(sum + t <= n),然后每次在循环中先判断t是不是质数,如果是质数就给他放到口袋中,然后将t输出,换行就可以了。

ACcode

#include<stdio.h>int main(){int n;scanf("%d", &n);//口袋的容量int cnt = 0;//cnt记录口袋放了多少个int sum = 0;//sum记录当前放入口袋中的数字的和int t = 2;while(sum + t <= n){//如果当前物品能放入口袋中就进入循环int flag = 1; //判断质数的标记for(int i = 2; i * i <= t; i++){ //判断质数模板if(t % i == 0){flag = 0;break;}}if(flag == 1){  //如果t是质数,就把这个数放进口袋里cnt++; //个数+1printf("%d\n", t); //将这个数输出sum += t; //将t累加给sum}t++; //继续判断下一个数(一定不要忘,忘写就死循环了)}printf("%d", cnt); //输出能装下的质数个数return 0;
}

S.有精神分裂症的小明

ACcode

就是找一个最大值,找一个最小值,然后用(总成绩-最大值-最小值)/(人数减二)就好了

#include<stdio.h>int main(){int n;scanf("%d", &n);int maxn = 0, minn = 10;//maxn记录最大值,minn记录最小值int sum = 0; // sum记录总分for(int i = 0; i < n; i++){int x;scanf("%d", &x); // 循环n次,就相当于输入n个数if(x > maxn) maxn = x; //每次在x比maxn大时更新最大值maxnif(x < minn) minn = x; //每次在x比minn小时更新最小值minnsum += x; //把每次输入的成绩累加到总成绩}printf("%.2lf", (sum - minn - maxn) * 1.0 / (n - 2)); // 注意1.0,不要忘return 0;
}

T.abc

多组输入,先输入一个T,为测试组数,然后while(T--){ },代码写在里面,不懂看讲义。

输入一个n,输出这个循环字符串的前n位,观察一下,第一位是a,第二位是b,第三位是c,第四位是a,第五位是b…既然循环周期是3,那么第i位到底该是什么字母是不是%3就可以得到了,然后发现,当i%3==1时,这一位就是a,当i%3==2时,这一位就是b,当i%3==0时,这一位就是c,代码就出来了

ACcode

#include<stdio.h>int main(){int T;scanf("%d", &T);//T组测试用例while(T--){//几组测试用例就循环几次int n;scanf("%d", &n);for(int i = 1; i <= n; i++){//for循环遍历第1位~第n位if(i % 3 == 1) printf("a"); //当i%3==1时,这一位就是a,输出aelse if(i % 3 == 2) printf("b"); //当i%3==2时,这一位就是b,输出belse printf("c"); //当i%3==0时,这一位就是c,输出c}printf("\n");//因为是多组输入,一组输出占一行,所以要记得换行}return 0;
}

U.M?ACM!

多组输入,先输入一个T,为测试组数,然后while(T--){ },代码写在里面,不懂看讲义。

和三角形那两道题差不多,也是两重for循环,第一重for循环遍历行,第二重for循环遍历列,一开始让一个变量等于1(int cnt = 1;),每次输出cnt,输出完就给cnt++,将每行的最后一个数换成ACM就行了,用一个if判断一下,如果是最后一个数(j==m),就输出ACM,否则就输出cnt

ACcode

#include<stdio.h>int main(){int T;scanf("%d", &T);//T组测试用例while(T--){//几组测试用例就循环几次int n, m;scanf("%d%d", &n, &m);//n行,列int cnt = 1;//每次需要输出的数,第一个输出1,就初始化为1for(int i = 1; i <= n; i++){//第i行for(int j = 1; j <= m; j++){ //第j列if(j != m) printf("%d ", cnt); //如果不是每行的最后一个数,就输出数字else printf("ACM"); //如果是每行的最后一个数,就输出ACMcnt++; //将cnt变成下一个数}printf("\n");//换行,继续输出下一行,不换行就全挤在一行了}}return 0;
}

V.数字翻转

将一个数字翻转过来只需一个变量配合while循环取位,将这个变量初始化为0(res=0),每次取位时让res*10+余数,最后res的值就是翻转后的数字

举个例子,大家都知道,while循环取出每一位是倒着取的(不知道的话去看讲义),比如1234,取出来的就是4,3,2,1res变的过程就是:res=0 –> res=res*10+4=4 -->res=res*10+3=43–> res=res*10+2=432 –>res=res*10+1=4321,就成功的翻转过来了

然后就判断两个数的翻转的和等不等于这两个数的和的翻转就可以了,一共需要翻三遍

注意,此题的多组输入是以0 0 结尾的,所以要写while(scanf("%d%d", &a, &b), a != 0 || b != 0){ },因为ab中如果有只一个为0也是可以的,所以要用或(||),不能用且(&&)

ACcode

#include<stdio.h>int rev(int a){//定义了一个函数(函数的奇妙请自主学习),返回值res就是a翻转过来的值int res = 0; //res一开始为0,从0开始乘和加while(a){//while循环取位,不会看讲义int t = a % 10;res = res * 10 + t; //每次res*10,让res的个位始终为0,然后将t填入res的个位,实现翻转操作a /= 10;}return res;//while循环执行完毕后,a的每一位都被取出并记录到res,res此时的值就是a翻转过来的值,return即可。
}int main(){int a, b;while(scanf("%d%d", &a, &b), a || b){//以0 0 结束的多组输入if(rev(a) + rev(b) == rev(a + b)){ //rev(a):a的翻转; rev(b):b的翻转; rev(a+b): a+b的翻转 (这个操作叫函数调用,省去了重复的部分,如果感兴趣请自主学习)printf("%d\n", a + b);//如果和的翻转等于翻转的和,就输出}else printf("NO\n");}return 0;
}

W.快乐数

这题就是一个while循环里面套了一个while循环取位加一个for循环判断质数,是一道循环套循环的的综合题。

首先,最外层的while循环,判断n是否只剩下最后一位,如果位数>=2n>=10)就继续循环,直到剩下最后一位时停止。

每次需要在循环内部将n变成它各个位上的数字的平方和,这一操作就需要先定义一个变量sum来记录n的各位的平方和并初始化为0,然后利用while循环取出n的每一位并将其的平方累加到sum,然后在外层while循环的最后将n的值更新成sum,便实现了快乐数的操作

至于判断质数,一定要注意一点,这题要求统计被替换掉的数中质数的个数,也就是说包含第一个数,但不包含最后一个数(最后剩下的一位数),所以一定要先判断n是不是质数,再用while循环取出n的每一位。如果不这样写,就需要事先用一个变量记录一下n的值,并且最后对剩下来的那个数进行特判,就需要多写几个if

ACcode

#include<stdio.h>int main(){int n;scanf("%d", &n); int cnt = 0; // cnt统计被替换数中质数的个数while(n >= 10){ // 当 n >= 10 时继续循环(即 n 还不是个位数)int flag = 1; //判断质数模板for(int i = 2; i * i <= n; i++){if(n % i == 0){ flag = 0; break; }}if(flag == 1) cnt++; // 质数数量加 1int sum = 0; // 用于计算 n 的各位数字的平方和while(n){//while循环取位模板int t = n % 10; sum += t * t; // 累加该位数字的平方到 sumn /= 10; }n = sum; // 更新 n 为它的各位数字的平方和}if(n == 1){  // 判断最终的 n 是否为 1printf("YES\n"); // 如果 n 是 1,说明它是快乐数}else{printf("NO\n"); // 否则,n 不是快乐数}printf("%d", cnt);  // 输出被替换的数中质数的个数return 0;
}

X. only one!

多组输入,先输入一个T,为测试组数,然后while(T--){ },代码写在里面,不懂看讲义。

这题主要考察大家对一些数学函数的使用,要用到两个函数,一个是整数取绝对值abs(),一个是向上取整ceil()

其实就是找最小值,在更新最小值的同时更新最小值对应的编号。一开始给minn初始化一个较大的值(此题201就够了,因为距离最大为200,速度最小为1,时间最大也就200)。然后每次对于每只蚂蚁,先算出他到糖果的距离,因为有负数,所以要取绝对值,然后时间=ceil(距离 * 1.0/速度),这里注意一定不要忘乘1.0,因为距离和速度都是整数,整数除整数默认为向下取整,只有乘1.0后得到的结果才是一个浮点数,向上取整才不会错。接下来参照上面找最小值的那题的操作就可以了

需要注意的就是这题一定要写 t < minn,千万不能写t <= minn,因为题中要求的是:如果有两只以上的蚂蚁同时到达,就输出编号最小的一只。如果你写t<minn,后面如果出现和前面的用时最短的蚂蚁同时到达的情况(t==minn)就不会更新编号,res记录的就一定是编号最小的,如果t<=minnres就变成编号最大的一只了,就WA

ACcode

#include<stdio.h>
#include<stdlib.h>
#include<math.h>int main(){int T;scanf("%d", &T);while(T--){int n, x;int minn = 201; //初始化最小值为一个较大的值,以为是多组输入,一定要在while循环内部初始化int res;//记录答案的编号scanf("%d%d", &n, &x);//n只蚂蚁,糖在x点for(int i = 1; i <= n; i++){ //n只蚂蚁的信息int a, b;scanf("%d%d", &a, &b); //a:位置  b:速度int s = abs(a - x); //s:距离,因为有正有负,所以要取绝对值int t = ceil(s * 1.0 / b); //时间,千万不要忘*1.0!!!if(t < minn){ // 如果t<minnminn = t; //就更新最小值res = i; //同时更新最小值对应的编号}}printf("%d\n", res); //输出答案}return 0;
}
http://www.dtcms.com/a/538420.html

相关文章:

  • 英文网站建设之后怎么推医疗器械分类目录2021
  • 朝阳网站建设 高碑店什么行业最需要网站建设
  • 网站推广优化招聘计算机网络设计是干什么的工作
  • 深圳企业网站制作流程wordpress小工具编辑
  • 曲靖程序网站建设中国教学网站
  • 网站定制开发特点wordpress首页广告位
  • 【Linux】信号的产生,保存,捕捉机制
  • 网站建设详细流程视频温州市手机网站制作多少钱
  • 福州网站怎么做的私活网站开发多少钱
  • 河南做网站的公司有哪些seo公司网站
  • 做asp网站需要的实验报告单做的网站上更改内容改怎么回事
  • 网站建设教程出售用苏州久远网络禹城做网站的
  • 深圳模板网站南通网站开发
  • 网站栏目名称大全用jsp做视频网站
  • 做设计找图有哪些网站有哪些问题企业网站被黑后如何处理
  • Kubernetes入门学习
  • 大模型学习2
  • 【论文学习与撰写】Mathtype的安装与word插件安装
  • 小企业网站建设的基础知识小型企业做网站的价格
  • 怀化本地网站网站如何做免费推广
  • 网站适配怎么做主机如何做服务器建网站
  • 网站网页设计培训百度站长平台网址
  • 门户网站 管理系统网络营销导向企业网站建设的一般原则
  • 南京做网站找哪家4399网页游戏大全
  • 邵阳优秀网站建设网站友情链接自动上链
  • 好网站你知道的大数据抓取客户软件
  • 做装修公司的网站通栏式网站
  • 网站卖东西怎么做wordpress 用户登录
  • winform实现计算器-保姆级教程
  • 动漫网站实现功能韩国能否出线