|
本帖最后由 三重岁月 于 2021-5-6 20:38 编辑
#### 题目 1009: [编程入门]数字的处理与判断
时间限制: 1Sec 内存限制: 128MB 提交: 41136 解决: 20275
题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
```
12345
```
样例输出
```
5
1 2 3 4 5
54321
```
C语言程序1:
- #include <stdio.h>
- #include <string.h>
-
- int main()
- {
- char str[10];
- scanf("%s", str);
- int len = strlen(str);
- printf("%d\n", len);
- for (int i = 0; i < len; i++)
- {
- printf("%c ", str[i]);
- }
- printf("\n");
- for (int i = len - 1; i >= 0; i--)
- {
- printf("%c", str[i]);
- }
- return 0;
- }
复制代码
#### 题目 1011: [编程入门]最大公约数与最小公倍数
时间限制: 1Sec 内存限制: 128MB 提交: 31876 解决: 17643
题目描述
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入
两个整数
输出
最大公约数,最小公倍数
样例输入
```
5 7
```
样例输出
```
1 35
```
C语言程序1:
- #include<stdio.h>
- int main()
- {
- int a,b;
- scanf("%d %d",&a,&b);
- int x=a,y=b,z;
- //y!=0 <==> y 布尔值在C中,除了0为no,其余均为yes
- while(y!=0){
- z=x%y;
- x=y;
- y=z;
- }
- printf("%d %d",x,a*b/x);
- return 0;
- }
复制代码
#### 题目 1014: [编程入门]阶乘求和
时间限制: 1Sec 内存限制: 128MB 提交: 61656 解决: 14371
题目描述
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
输入
n
输出
Sn的值
样例输入
```
5
```
样例输出
```
153
```
C
- #include <stdio.h>
- int main()
- {
- int n;
- long long int sum = 0, t = 1;
- scanf("%d", &n);
- for (int i = 1; i <= n; i++)
- {
- t *= i;
- sum += t;
- }
- printf("%lld", sum);
- }
复制代码
#### 题目 1017: [编程入门]完数的判断
时间限制: 1Sec 内存限制: 128MB 提交: 24223 解决: 11548
题目描述
一个数如果恰好等于不包含它本身所有因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子
输入
N
输出
? its factors are ? ? ?
样例输入
```
1000
```
样例输出
```
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248
```
C
- #include<stdio.h>
- int main()
- {
- int a,b;
- long long n,i;
- scanf("%lld",&n);
- for(a=6;a<=n;a++){
- //if (a % 10 != 6 && a % 10 != 8) continue;
- int s[999]={0};
- int *p=s;
- for(i=1;i<=a/2;i++){
- if(a%i==0) {
- *++p=i;
- s[0]+=i;
- }
- }
- if(s[0]==a){
- printf("%d its factors are",a);
- for(p=&s[1];*p!=0;p++){
- printf(" %d",*p);
- }
- printf("\n");
- }
- }
- return 0;
-
- }
复制代码
#### 题目 1023: [编程入门]选择排序
时间限制: 1Sec 内存限制: 128MB 提交: 23771 解决: 11215
题目描述
用选择法对10个整数从小到大排序。
输入
输入10个无序的数字
输出
排序好的10个整数
样例输入
```
4 85 3 234 45 345 345 122 30 12
```
样例输出
```
3
4
12
30
45
85
122
234
345
345
```
C
- #include<stdio.h>
- int main()
- {
- int a[11],b;
- int i,j,n=10,max;
- for(i=0;i<n;i++) scanf("%d",a+i);
- for(i=0;i<n-1;i++) {
- max=0;
- for(j=0;j<n-i;j++){
- if(a+i>a+max) max=i;
- }
- b=a[n-i-1];
- a[n-i-1]=a[max];
- a[max]=b;
- }
- for (i = 0; i <n; i++)
- printf("%d\n", a[i]);
- return 0;
- }
复制代码
#### 题目 1044: [编程入门]三个字符串的排序
时间限制: 1Sec 内存限制: 128MB 提交: 12364 解决: 6302
题目描述
输入三个字符串,按由小到大的顺序输出
输入
3行字符串
输出
按照从小到大输出成3行
样例输入
```
cde
afg
abc
```
样例输出
```
abc
afg
cde
```
C
- #include<stdio.h>
- #include<string.h>
-
- int main()
- {
- char a[3][128], tmp[128];
- int i, j;
- for(i=0; i<3; i++)
- {
- scanf("%s", a[i]);
- }
- for(i=0; i<3; i++)
- {
- for(j=i+1; j<3; j++)
- {
- if(strcmp(a[i], a[j]) > 0)
- {
- memset(tmp, 0, sizeof(tmp));
- strcpy(tmp, a[i]);
- strcpy(a[i], a[j]);
- strcpy(a[j], tmp);
- }
- }
- }
- for(i=0; i<3; i++)
- {
- printf("%s\n", a[i]);
- }
- return 0;
- }
复制代码
#### 题目 1047: [编程入门]报数问题
时间限制: 1Sec 内存限制: 128MB 提交: 9010 解决: 4763
题目描述
有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
输入
初始人数n
输出
最后一人的初始编号
样例输入
```
3
```
样例输出
```
2
```
- #include<stdio.h>
- #define n 100
- int main()
- {
- int a[n]={0},b=0,i,num,k=0;
- scanf("%d",&num);
- a[0]=num;
- for(i=1;i<num;i++) a[i]=i;
- for(i=1;b<num-1;i++){
- if(a[i%num]==0) continue;
- k++;
- if(k==3){
- a[i%num]=0;
- b++;
- k=0;
- }
- }
- for(i=0;i<num;i++) if(a[i]) printf("%d",a[i]);
- return 0;
- }
复制代码
|
上一篇: 浙大PTA第六章函数练习答案下一篇: C学习之路的点滴记录---基础指针数组--大牛飘过
|