2.Exercise
Exercise
- 菱形
- 自幂数
- 水瓶
- 数字调序
- 杨辉三角
菱形
输入行数:3
输出以下图形
*
***
*****
***
*
int main()
{
int line = 0;
scanf("%d", &line);
int i = 0;
for (i = 0; i < line; i++)//打印一行(上半部分)
{
int j = 0;
for (j = 0; j < line - 1 - i; j++)//打印空格
{
printf(" ");
}
for (j = 0; j < 2 * i + 1; j++)//打印*
{
printf("*");
}
printf("\n");
}
for (i = 0; i < line; i++)//打印一行(下半部分)
{
int j = 0;
for (j = 0; j < i + 1; j++)//打印空格
{
printf(" ");
}
for (j = 0; j < 2 * (line - i - 1) - 1; j++)//打印*
{
printf("*");
}
printf("\n");
}
return 0;
}
自幂数
自幂数是指一个n位数,它的每个数位上的数字的n次幂之和等于它本身。
题目内容:
求出0~100000之间的所有自幂数并输出。
eg:153=1^3+5^3+3^3
#include <math.h>
int main()
{
int i = 0;
for (i = 0; i < 100000; i++)
{
//判断i的位数n
int n = 1;
int tmp = i;
while (tmp /= 10)
{
n++;
}
//求各个位n次和
tmp = i;
int sum = 0;
while (tmp)
{
sum += pow(tmp % 10, n);
tmp /= 10;
}
//判断
if (sum == i)
printf("%d ", i);
}
return 0;
}
0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 93084
水瓶
一瓶水1元,2空瓶可以换1瓶水,20元可以喝多少瓶水。
int main()
{
int money = 0;//钱数
int total = 0;//水数
int empty = 0;//空瓶数
scanf("%d", &money);
total += money;
empty += money;
while (empty >= 2)
{
total += empty / 2;
empty = empty / 2 + empty % 2;
}
printf("total == %d", total);
return 0;
}
数字调序
输入一个整数数组,实现一个函数
使数组中奇数位于前半部分,偶数位于后半部分
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
int l = 0;
int r = sz - 1;
while (l < r)
{
//从左向右找偶数
while ((l < r) && arr[l] % 2 == 1)
{
l++;
}
//从右向左找奇数
while ((l < r) && arr[r] % 2 == 0)
{
r--;
}
if (l < r)
{
int tmp = arr[l];
arr[l] = arr[r];
arr[r] = tmp;
l++;
r--;
}
}
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d", arr[i]);
}
return 0;
}
193756482
杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
int main()
{
int arr[10][10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)
{
int j = 0;
for (j = 0; j < 10; j++)
{
if (i == j || j == 0)
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 < 10; i++)
{
int j = 0;
for (j = 0; j <= i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1