有序序列合并
//有序序列合并
int main()
{
//输入
int n = 0;
int m = 0;
scanf("%d %d", &n, &m);
int k = n + m;//计算n、m之和,方便使用
//循环输入n个数和m个数
int arr1[1001] = { 0 };
int arr2[1001] = { 0 };
//定义数组来存放arr1、arr2的元素
int arr[1001] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i < n; i++)
{
//输入一个arr1的元素就存放到arr内
scanf("%d", &arr1[i]);
arr[i] = arr1[i];
}
for (i = 0; i < m; i++)
{
//输入arr2的值
scanf("%d", &arr2[i]);
//紧跟着放在arr1元素后面
arr[n] = arr2[i];
//放一次就++,arr元素下标变化
n++;
}
//使用冒泡排序法,对arr数组(里的arr1、arr2值)排升序
int tmp = 0;
for (i = 0; i < k - 1; i++)
{
for (j = 0; j < k - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (i = 0; i < k; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
小乐乐走台阶
//小乐乐走台阶
//通过观察,可以发现1~3层数,走的方法就为层数
//第4层开始,走的方法就为(第前一个数+第前两个数)
//而我们学过的计算斐波那契数,就可以用在这道题上
//唯一不同的计算1~3不需要计算,只需得到层数就为走法
int My_get(int n)
{
if (n >= 4)
{
return My_get(n - 1) + My_get(n - 2);
}
return n;
}
int main()
{
int n = 0;
scanf("%d", &n);
int sum = 0;
if (n >= 1 && n <= 30)
{
sum = My_get(n);
}
printf("%d\n", sum);
return 0;
}
变种水仙花
//变种水仙花
int main()
{
//利用循环计算5位数中(10000~99999)的水仙花
int i = 0;
for (i = 10000; i <= 99999; i++)
{
//每次计算i,sum都初始化为0,防止数据重叠
int sum = 0;
//将1万~9万排除,因为它们拆分不出两个数
if (i % 10000 != 0)
{
sum = (i / 10000) * (i % 10000);
sum += (i / 1000) * (i % 1000);
sum += (i / 100) * (i % 100);
sum += (i / 10) * (i % 10);
if (sum == i)
{
printf("%d ", sum);
}
}
}
return 0;
}
三角形判断
//三角形判断
int main()
{
//三边
int a = 0;
int b = 0;
int c = 0;
//多组输入,三边
while (scanf("%d %d %d",&a,&b,&c) != EOF)
{
//判断三边是否能构成三角形
if (a + b > c && a + c > b && b + c > a)
{
if (a == b && b == c)//判断是否为等边三角形
{
printf("Equilateral triangle!\n");
}
//判断是否为等腰三角形
else if (a + b == b + c || a + c == b + c || c + a == b + a)
{
printf("Isosceles triangle!\n");
}
//判断是否为其它三角形
else
{
printf("Ordinary triangle!\n");
}
}
//不构成三角形
else
{
printf("Not a triangle!\n");
}
}
return 0;
}