BC7 缩短二进制
printf 格式控制符 “%o” —— 八进制整数 、“%x” —— 十六进制整数 ;
修饰符 “#” —— 控制前导显示
BC64 K形图案
错因:把图形分成两部分,下半部分打印错误
先把下半部分作为一个完整三角形:
int n=0;
scanf("%d",&n);
int i=0;
for(i=0;i<n;i++)//i=0 —— 可以打印一个完整的三角形
{
int j=0;
for(j=0;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
//将i=0 —> i=1 就可以控制从完整三角形的第二行开始打印,从而完成题目效果
BC68 X形图案
打印 n 方形的两条对角线 —— 核心思想:分析图形中元素的行列关系
int n=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j || i+j==n-1)
printf("*");
else
printf(" ");
}
printf("\n");
}
//行:0,1,2,... ;列:0,1,2,...
//对角线上元素 行列满足: **1. i == j ; 2. i + j == n-1**
BC74 HTTP状态码
1. if 条件判断语句
2. switch 语句
BC77 有序序列插入一个数
#include<stdio.h>
int main()
{
int n=0;
scanf("%d",&n);//有序数组元素的个数
int arr[50]={0};
int i=0;
for(i=0;i<n;i++)//输入有序数组
{
scanf("%d",&arr[i]);
}
int m=0;
scanf("%d",&m);//插入值
for(i=n;arr[i-1]>m;i--)//将所有比m大的元素向右移一位
arr[i]=arr[i-1];
arr[i]=m;//插入
for(i=0;i<n+1;i++)
printf("%d ",arr[i]);
return 0;
}
BC99 序列中整数去重
两个思路:
#include<stdio.h>
#define N 1000
//1.将完整数组输入后,再进行去重
int main()
{
int n = 0;
scanf("%d", &n);
int arr[N] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
//去重
for (i = 0; i < n - 1; i++)
{
int j = 0;
for (j = i + 1; j < n; j++)
{
if (arr[j] == arr[i])
arr[j] = 0;
}
}
//打印
for (i = 0; i < n; i++)
{
if (arr[i])
printf("%d ", arr[i]);
}
return 0;
}
//2.定义arr[N] arr2[N],
//arr中每输入一个值就与已经输入的值进行比较,没有重复则放入arr2
int main()
{
int n = 0;
scanf("%d", &n);
int arr[N] = { 0 };
int arr2[N] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
{
int flag = 1;
scanf("%d", &arr[i]);
for (int j = 0; j < i; j++)
{
if (arr2[j] == arr[i])
{
flag = 0;
break;
}
}
if (flag == 1)
arr2[i] = arr[i];
}
//打印arr2
for (i = 0; i < n; i++)
{
if (arr2[i])
printf("%d ", arr2[i]);
}
return 0;
}
BC117 小乐乐走台阶
//分析1,2阶台阶的走法
//1:(1) —— 1
//2:(1,1) , (2) —— 2
//n阶台阶
//第一步可以选择走1阶或2阶,则剩下n-1 或 n-2 阶
//eg: 3阶
//走1阶,剩2阶
//走2阶,剩1阶
本质上是 斐波那契数列 的变形;
#include<stdio.h>
int Fib(int n)
{
if(n>2)
return Fib(n-1)+Fib(n-2);
else
return n;
}
int main()
{
int n=0;
scanf("%d",&n);
int step=Fib(n);
printf("%d\n",step);
return 0;
}
BC118 小乐乐与序列
题中隐藏一个重要信息:
int arr[100000]={0};
int n=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int tmp=0;
scanf("%d",&tmp);
arr[tmp]=tmp;
}