目录

  • BC99 序列中整数去重
  • BC100 有序序列合并
  • BC101 班级成绩输入输出
  • BC102 矩阵元素定位
  • BC103 序列重组矩阵
  • BC104 最高身高
  • BC105 矩阵相等判定
  • BC106 上三角矩阵判定
  • BC107 矩阵转置
  • BC108 矩阵交换
  • BC109 杨辉三角
  • BC110 井字棋
  • BC111 小乐乐与进制转换
  • BC112 小乐乐求和
  • BC113 小乐乐定闹钟
  • BC114 小乐乐排电梯
  • BC115 小乐乐与欧几里得
  • BC116 小乐乐改数字
  • BC117 小乐乐走台阶
  • BC118 小乐乐与序列
  • BC119 小乐乐与字符串

BC99 序列中整数去重

描述
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述:
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数(范围1~5000),用空格分隔。

输出描述:
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。

示例1
输入:
5
10 12 93 12 75
输出:
10 12 93 75

题目链接

#include <stdio.h>
/*
int main()
{int n = 0;int i = 0;int arr[1000] = {0};scanf("%d", &n);for(i=0; i<n; i++){scanf("%d", &arr[i]);int j = 0;int flag = 1;for(j=0; j<i; j++){if(arr[i] == arr[j]){flag = 0;break;}}if(flag == 1){printf("%d ", arr[i]);}}return 0;
}
*/int main()
{int n = 0;int i = 0;int arr[1000] = { 0 };scanf("%d", &n);for (i = 0; i < n; i++){scanf("%d", &arr[i]);}//去重for (i = 0; i < n; i++){//判断arr[i]是否在后面出现int j = 0;for (j = i+1; j < n; j++){if (arr[i] == arr[j]){//去重 后面的元素往前覆盖int k = 0;for (k = j; k < n - 1; k++){arr[k] = arr[k + 1];}n--; //覆盖完少一个元素j--; //避免 1 2 3 3 3 5 7}}}for (i = 0; i < n; i++){printf("%d ", arr[i]);}return 0;
}

BC100 有序序列合并

描述
输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
输入描述:
输入包含三行,

第一行包含两个正整数n, m(1 ≤ n,m ≤ 100),用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数(范围1~5000),用空格分隔。

第三行包含m个整数(范围1~5000),用空格分隔。
输出描述:
输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
示例1
输入:
5 6
1 3 7 9 22
2 8 10 17 33 44
输出:
1 2 3 7 8 9 10 17 22 33 44

题目链接

#include <stdio.h>
/*
int main()
{int n = 0;int m = 0;int arr1[100] = { 0 };int arr2[100] = { 0 };int arr3[200] = { 0 };scanf("%d %d", &n, &m);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr1[i]);}for (i = 0; i < m; i++){scanf("%d", &arr2[i]);}//合并有序序列i = 0; //int j = 0;int k = 0;while (i < n && j < m){if (arr1[i] < arr2[j]){arr3[k++] = arr1[i++];}else{arr3[k++] = arr2[j++];}}if (i == n) //如果arr1先比完 把arr2剩下的放进arr3{for (; j < m; j++){arr3[k++] = arr2[j];}}else{for (; i < n; i++){arr3[k++] = arr1[i];}}for (i = 0; i < k; i++){printf("%d ", arr3[i]);}return 0;
}
*/int main()
{int n = 0;int m = 0;int arr1[100] = { 0 };int arr2[100] = { 0 };scanf("%d %d", &n, &m);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr1[i]);}for (i = 0; i < m; i++){scanf("%d", &arr2[i]);}//合并有序序列i = 0; //int j = 0;int k = 0;while (i < n && j < m){if (arr1[i] < arr2[j]){printf("%d ", arr1[i++]);}else{printf("%d ", arr2[j++]);}}if (i == n) // 如果arr1先比完 把arr2剩下的放进arr3{for (; j < m; j++){printf("%d ", arr2[j]);}}else{for (; i < n; i++){printf("%d ", arr1[i]);}}return 0;
}

BC101 班级成绩输入输出

描述
输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。

输入描述:
五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。
输出描述:
五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。
示例1
输入:
98.5 96.0 100 99 88
60.5 77 88.5 99 60
80 80.5 89 91 92
93 94 95.5 96 97.5
100 98 88.5 88 78.5
输出:
98.5 96.0 100.0 99.0 88.0 481.5
60.5 77.0 88.5 99.0 60.0 385.0
80.0 80.5 89.0 91.0 92.0 432.5
93.0 94.0 95.5 96.0 97.5 476.0
100.0 98.0 88.5 88.0 78.5 453.0

题目链接

#include <stdio.h>
/* 数组行列
int main()
{float arr[5][5] = { 0.0 };int i = 0;int j = 0;float sum = 0.0;for (i = 0; i < 5; i++){for (j = 0; j < 5; j++){scanf("%f", &arr[i][j]);}}for (i = 0; i < 5; i++){sum = 0.0;for (j = 0; j < 5; j++){sum += arr[i][j];printf("%.1f ", arr[i][j]);}printf("%.1f\n", sum);  }return 0;
}
*/int main()
{int i = 0;double score[5] = { 0 };for (i = 0; i < 5; i++){//读取一个人的5科成绩int j = 0;double sum = 0.0;for (j = 0; j < 5; j++){scanf("%lf", &score[j]);sum += score[j];}for (j = 0; j < 5; j++){printf("%.1lf ", score[j]);}printf("%.1lf\n", sum);}return 0;
}

BC102 矩阵元素定位

描述
KiKi得到了一个n行m列的矩阵,现在他想知道第x行第y列的值是多少,请你帮助他完成这个任务。

输入描述:
第一行包含两个数n和m,表示这个矩阵包含n行m列。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示矩阵中的元素。接下来一行输入x和y,用空格分隔,表示KiKi想得到的元素的位置。(1≤x≤n≤10,1≤y≤m≤10)

输出描述:
一行,输出一个整数值,为KiKi想知道的值。
示例1
输入:
2 3
1 2 3
4 5 6
1 2
输出:
2

题目链接

#include <stdio.h>int main()
{int n = 0;int m = 0;int arr[10][10] = {0};scanf("%d %d", &n, &m);int i = 0;int j = 0;for(i=0; i<n; i++){for(j=0; j<m; j++){scanf("%d", &arr[i][j]);}}int x = 0;int y = 0;scanf("%d %d", &x, &y);printf("%d", arr[x-1][y-1]);return 0;
}

BC103 序列重组矩阵

描述
KiKi现在得到一个包含nm个数的整数序列,现在他需要把这nm个数按顺序规划成一个n行m列的矩阵并输出,请你帮他完成这个任务。
输入描述:
一行,输入两个整数n和m,用空格分隔,第二行包含n*m个整数(范围-231~231-1)。(1≤n≤10, 1≤m≤10)
输出描述:
输出规划后n行m列的矩阵,每个数的后面有一个空格。
示例1
输入:
2 3
1 2 3 4 5 6
输出:
1 2 3
4 5 6

题目链接

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

BC104 最高身高

描述
KiKi想从n行m列的方阵队列中找到身高最高的人的位置,请你帮助他完成这个任务。

输入描述:
第一行包含两个整数n和m,表示这个方阵队列包含n行m列。从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示方阵中的所有人的身高(保证输入身高都不相同)。(1≤x≤n≤10,1≤y≤m≤10)

输出描述:
一行,输出两个整数,用空格分隔,表示方阵中身高最高的人所在的行号和列号。
示例1
输入:
2 2
175 180
176 185
输出:
2 2

题目链接

#include <stdio.h>int main()
{int n = 0;int m = 0;int max = 0;scanf("%d %d", &n, &m);int arr[10][10] = {0};int i = 0;int j = 0;int l = 0;int r = 0;for(i=0; i<n; i++){for(j=0; j<m; j++){scanf("%d", &arr[i][j]);if(max < arr[i][j]){max = arr[i][j];l = i;r = j;}}}printf("%d %d", l+1, r+1);return 0;
}
/*
int main()
{int n,m,i,j;int max = 0;scanf("%d %d", &n, &m);int arr[10][10] = {0};for(i=0; i<n; i++){for(j=0; j<m; j++){scanf("%d", &arr[i][j]);max=max>arr[i][j]?max:arr[i][j];}}for(i=0; i<n; i++){for(j=0; j<m; j++){if(max == arr[i][j]){printf("%d %d", i+1, j+1);break;}}}return 0;
}
*/

BC105 矩阵相等判定

描述
KiKi得到了两个n行m列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩阵相等)。

输入描述:
第一行包含两个整数n和m,表示两个矩阵包含n行m列,用空格分隔。

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第二个矩阵中的元素。
1 < n,m < 10
输出描述:
一行,如果两个矩阵相等输出"Yes"并换行,否则输出"No"并换行。
示例1
输入:
2 2
1 2
3 4
1 2
3 4
输出:
Yes

题目链接

#include <stdio.h>/*int main()
{int arr1[10][10] = { 0 };int arr2[10][10] = { 0 };int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int j = 0;//输入了矩阵1//n行for (i = 0; i < n; i++){//m列for (j = 0; j < m; j++){scanf("%d", &arr1[i][j]);}}//输入了矩阵2for (i = 0; i < n; i++){//m列for (j = 0; j < m; j++){scanf("%d", &arr2[i][j]);}}//判断int flag = 1; //默认相同for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (arr1[i][j] != arr2[i][j]){flag = 0;break;}}}if (flag == 1){printf("Yes\n");}else{printf("No\n");}return 0;
} */int main()
{int n = 0;int m = 0;int arr1[10][10] = { 0 };int arr2[10][10] = { 0 };scanf("%d %d", &n, &m);int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr1[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr2[i][j]);}}for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (arr1[i][j] != arr2[i][j]){printf("No\n");return 0;}}}printf("Yes\n");return 0;
}

BC106 上三角矩阵判定

描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)

从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。

输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。

示例1
输入:
3
1 2 3
0 4 5
0 0 6
输出:
YES

题目链接

#include <stdio.h>int main()
{int n = 0;int arr[10][10] = {0};scanf("%d", &n);int i = 0;int j = 0;for(i=0; i<n; i++){for(j=0; j<n; j++){scanf("%d", &arr[i][j]);}}for(i=0; i<n; i++){for(j=0; j<n; j++){if(i>j){if(arr[i][j] != 0){printf("NO\n");return 0;}}}}printf("YES\n");return 0;
}

BC107 矩阵转置

描述
KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。

输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

输出描述:
输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。
示例1
输入:
2 3
1 2 3
4 5 6
输出:
1 4
2 5
3 6

题目链接

#include <stdio.h>int main()
{int n = 0;int m = 0;int arr[10][10] = { 0 };scanf("%d %d", &n, &m);int i = 0;int j = 0;//输入for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}//转置输出for (i = 0; i < m; i++) //打印3行2列{for (j = 0; j < n; j++){printf("%d ", arr[j][i]);}printf("\n");}return 0;
}

BC108 矩阵交换

描述
KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。

输入描述:
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
接下来一行输入k,表示要执行k次操作(1≤k≤5)。接下来有k行,每行包括一个字符t和两个数a和b,中间用空格格分隔,t代表需要执行的操作,当t为字符’r’时代表进行行变换,当t为字符’c’时代表进行列变换,a和b为需要互换的行或列(1≤a≤b≤n≤10,1≤a≤b≤m≤10)。

输出描述:
输出n行m列,为矩阵交换后的结果。每个数后面有一个空格。
示例1
输入:
2 2
1 2
3 4
1
r 1 2
输出:
3 4
1 2

题目链接

#include <stdio.h>int main()
{int n = 0;int m = 0;int arr[10][10] = {0};scanf("%d %d", &n, &m);int i = 0;int j = 0;for(i=0; i<n; i++){for(j=0; j<m; j++){scanf("%d", &arr[i][j]);}}int k = 0;//操作的次数scanf("%d", &k);char t = 0;int a = 0;int b = 0;for(i=0; i<k; i++){//每一次操作的过程scanf(" %c %d %d", &t, &a, &b); //消除\nif(t =='r') //交换行{for(j=0; j<m; j++){int tmp = arr[a-1][j];arr[a-1][j] = arr[b-1][j];arr[b-1][j] = tmp;}}else if(t == 'c') //交换列{for(j=0; j<n; j++){int tmp = arr[j][a-1];arr[j][a-1] = arr[j][b-1];arr[j][b-1] = tmp;}}}for(i=0; i<n; i++){for(j=0; j<m; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

BC109 杨辉三角

描述
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。

输入描述:
第一行包含一个整数数n。 (1≤n≤30)
输出描述:
包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示例1
输入:
6
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

题目链接

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

BC110 井字棋

描述
KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入描述:
三行三列的字符元素,代表棋盘状态,字符元素用空格分开,代表当前棋盘,其中元素为K代表KiKi玩家的棋子,为O表示没有棋子,为B代表BoBo玩家的棋子。
输出描述:
如果KiKi获胜,输出“KiKi wins!”;
如果BoBo获胜,输出“BoBo wins!”;
如果没有获胜,输出“No winner!”。
示例1
输入:
K O B
O K B
B O K
输出:
KiKi wins!

题目链接

#include <stdio.h>int main()
{char arr[3][3] = { 0 };int i = 0;int j = 0;for (i = 0; i < 3; i++){for (j = 0; j < 3; j++){scanf(" %c", &arr[i][j]); //字符 读取空格//getchar();}}//判断输赢char flag = 'o';for (i = 0; i < 3; i++){//3行if (arr[i][0]==arr[i][1] && arr[i][1]==arr[i][2] && arr[i][1] != 'o'){flag = arr[i][1];break;}//3列if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[1][i] != 'o'){flag = arr[1][i];break;}}//2条对角线if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[1][1] != 'o'){flag = arr[1][1];}if (arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[1][1] != 'o'){flag = arr[1][1];}if (flag == 'K'){printf("KiKi wins!\n");}else if (flag == 'B'){printf("BoBo wins!\n");}else{printf("No winner!\n");}return 0;
}


BC111 小乐乐与进制转换

描述
小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

输入描述:
输入一个正整数n (1 ≤ n ≤ 109)

输出描述:
输出一行,为正整数n表示为六进制的结果
示例1
输入:
6
输出:
10
示例2
输入:
120
输出:
320

题目链接

#include <stdio.h>int main()
{int n = 0;int arr[50] = {0};scanf("%d", &n);int i = 0;while(n){arr[i] = n % 6;i++;n = n /6;}for(i--; i>=0; i--){printf("%d", arr[i]);}return 0;
}

BC112 小乐乐求和

描述
小乐乐最近接触了求和符号Σ,他想计算的结果。但是小乐乐很笨,请你帮助他解答。

输入描述:
输入一个正整数n (1 ≤ n ≤ 109)

输出描述:
输出一个值,为求和结果。
示例1
输入:
1
输出:
1
示例2
输入:
10
输出:
55

题目链接

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

BC113 小乐乐定闹钟

描述
小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)

输入描述:
输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。

输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)

(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)

输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。
示例1
输入:
0:0 100
输出:
01:40
示例2
输入:
1:0 200
输出:
04:20

题目链接

#include <stdio.h>int main()
{int h = 0;int m = 0;int k = 0;scanf("%d:%d %d", &h, &m, &k);h = ((m+k)/60+h)%24;m = (m+k)%60;printf("%02d:%02d\n", h, m);return 0;
}

BC114 小乐乐排电梯

描述
小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。请帮助小乐乐计算还需要多少分钟才能乘电梯到达楼上。(假设最初电梯在1层)

输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:
输出一个整数,即小乐乐到达楼上需要的时间。
示例1
输入:
1
输出:
2
示例2
输入:
12
输出:
6

题目链接

#include <stdio.h>int main()
{int n = 0;int t = 0;scanf("%d", &n);t = (n /12) * 4 +2;printf("%d", t);return 0;
}

BC115 小乐乐与欧几里得

描述
小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。

输入描述:
每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)

输出描述:
对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。
示例1
输入:
10 20
输出:
30
示例2
输入:
15 20
输出:
65

题目链接

#include <stdio.h>
/*
int main()
{long long n = 0;long long m = 0;scanf("%lld %lld", &n, &m);long long max = n > m ? m : n; //假设n和m的较小值为最大公约数long long min = n > m ? n : m; //假设n和m的较大值为最小公倍数while (1){if (n % max == 0 && m % max == 0){break;}max--;}while (1){if (min % n == 0 && min % m == 0){break;}min++;}printf("%lld\n", max + min);return 0;
}
*//*
int main()
{long long n = 0;long long m = 0;scanf("%lld %lld", &n, &m);long long n2 = n;long long m2 = m;long long c = 0;while (c = m2 % n2){m2 = n2;n2 = c;}long long min = m * n / n2;long long sum = min + n2;printf("%lld", sum);return 0;
}
*///辗转相除法
int main()
{long long n = 0;long long m = 0;scanf("%lld %lld", &n, &m);long long tmp = 0;long long max = 0;long long min = 0;long long n2 = n;long long m2 = m;//24 % 18 = 6//18 % 6 = 0while (tmp=n%m){n = m;m = tmp;}max = m;//最小公倍数= n*m/maxmin = n2*m2/max;printf("%lld\n", max+min);return 0;
}

BC116 小乐乐改数字

描述
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:
输出一个整数,即小乐乐修改后得到的数字。
示例1
输入:
222222
输出:
0
示例2
输入:
123
输出:
101

题目链接

#include <stdio.h>int main()
{int n = 0;int i = 0;int sum = 0;scanf("%d", &n);while(n){int m = n%10;if(m%2 ==1) //奇数 变1m=1;elsem=0;sum += m*pow(10, i++); //个位乘10^0 百位乘20^2n /= 10;}printf("%d\n", sum);return 0;
}

BC117 小乐乐走台阶

描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?

输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1
输入:
2
输出:
2
示例2
输入:
10
输出:
89

题目链接

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


BC118 小乐乐与序列

描述
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。

输入描述:
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)

输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
示例1
输入:
4
2
2
1
1
输出:
1 2
示例2
输入:
5
5
4
3
2
1
输出:
1 2 3 4 5

题目链接

#include <stdio.h>int main()
{int n = 0;int arr[100001] = {0};scanf("%d", &n);int i = 0;int tmp = 0;for(i=0; i<n; i++){//1 ≤ k ≤ n//把每个数字放到对应数字的下标scanf("%d", &tmp);arr[tmp] = tmp;}for(i=0; i<n; i++){if(arr[i] != 0){printf("%d ", arr[i]);}}return 0;
}


BC119 小乐乐与字符串

描述
在庆祝祖国母亲70华诞之际,老师给小乐乐出了一个问题。大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子串“CHN”的个数。
子串的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子串。如“ABC”的子串有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”。

输入描述:
输入只包含大写字母的字符串s。(1 ≤ length ≤ 8000)
输出描述:
输出一个整数,为字符串s中字串“CHN”的数量。
示例1
输入:
CCHNCHN
输出:
7
示例2
输入:
CCHNCHNCHNCHN
输出:
30

题目链接

#include <stdio.h>int main()
{char arr[8000] = {0}; //CCHNCHNscanf("%s", arr);//统计子串CHN的个数long long c = 0;long long ch = 0;int chn = 0;char *p = arr;while(*p){if(*p == 'C')c++;else if(*p == 'H')ch += c;else if(*p == 'N')chn += ch;p++;}printf("%lld\n", chn);return 0;
}

【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练相关推荐

  1. 牛客网 编程初学者入门训练 BC133 KiKi说祝福语

    题目来源:牛客网 编程初学者入门训练 BC133 KiKi说祝福语 import java.util.Scanner; public class Main {public static void ma ...

  2. 牛客网 编程初学者入门训练 BC37 网购 Java

    题目来源:牛客网 编程初学者入门训练 BC37 网购 import java.util.Scanner; public class Main {public static void main(Stri ...

  3. 牛客网 编程初学者入门训练 BC3 有容乃大 Java

    题目来源:牛客网 编程初学者入门训练 BC3 有容乃大 public class Main {public static void main(String[] args) {System.out.pr ...

  4. 【C语言】在线OJ题 BC53-BC70 -牛客网编程初学者入门训练

    目录 BC53 计算一元二次方程 BC54 获得月份天数 BC55 简单计算器 BC56 线段图案 BC57 正方形图案 BC58 直角三角形图案 BC59 翻转直角三角形图案 BC60 带空格直角三 ...

  5. 牛客网编程初学者入门训练讲解(C语言)

    以十进制显示数字,使用%d:以八进制 显示数字,使用%o:以十六进制显示数字,使用%x.另外,要显示各进制数的前缀0.0x和0X,必须使用%#o.%#x.%#X. --<C Primier Pl ...

  6. 【C语言】牛客网编程初学者入门训练-BC88-BC98

    目录 BC88 有序序列插入一个数 BC89 密码验证 BC90 矩阵计算 BC91 成绩输入输出问题 BC92 逆序输出 BC93 统计数据正负个数 BC94 N个数之和 BC95 最高分与最低分之 ...

  7. 牛客网编程初学者入门训练 BC28

    BC28 大小写转换 #include <stdio.h> int main() {int ch = 0;while ((ch = getchar()) != EOF){printf(&q ...

  8. 【C语言】在线OJ题 BC122-BC139-牛客网编程初学者入门训练

    目录 BC122 小乐乐算平均分 BC123 小乐乐找最大数 BC124 小乐乐是否被叫家长 BC125 小乐乐转换成绩 BC126 小乐乐算多少人被请家长 BC127 小乐乐算最高分 BC128 小 ...

  9. 【C语言】在线OJ题 BC7-BC52-牛客网编程初学者入门训练

    目录 BC7 缩短二进制 BC8 十六进制转十进制 BC9 printf的返回值 BC10 成绩输入输出 BC11 学生基本信息输入输出 BC12 字符金字塔 BC13 ASCII码 BC14 出生日 ...

最新文章

  1. 序列拼接工具Bowtie使用说明
  2. 云溪怎么导入dxf_dwg怎么转换成dxf文件?超详细图文教程分享
  3. mac编辑器coda使用小贴条
  4. matlab fftshift_MATLAB信号频谱分析FFT详解
  5. 整合 centos安装python的介绍
  6. DataGrip汉化方法
  7. Apache Phoenix学习记录(SQL on HBase)
  8. day25-python之继承组合
  9. html中出现的script失效
  10. 【语音去噪】基音matlab GUI音频信号去噪【含Matlab源码 1386期】
  11. RAM格式与JPG对比
  12. 程序员通过什么渠道接外包项目
  13. 通过命令符查看笔记本电脑的电池损耗
  14. 计算机时区找不到北京,emwin7时区/em 怎么没有北京时间了-win7时区,win7系统怎么添加北京时区...
  15. 来一份Android动画全家桶
  16. 晨钟暮鼓----用青春,做这份爱情的血色葬礼
  17. 业务架构、应用架构、数据架构、技术架构
  18. Linux驱动之usb鼠标
  19. 微信公司电话能不能人工服务器,【已解决】关于客服消息从服务端转人工的问题?...
  20. Maven创建三种项目类型:pom war jar

热门文章

  1. 实战 | Python批量提取Win10锁屏壁纸
  2. linux温故知新十
  3. spring cloud 资源
  4. windows performance
  5. WP8.1学习系列(第二章)——Toast通知
  6. linux方面的杂谈
  7. thin还是thick(续),实证新结论!
  8. 找不到文件或程序集名称“DreamweaverCtrls”的解决方法
  9. 10.08-vscode-plantuml建模
  10. zabbix api python使用