c语言经典题目

1.水仙花数

打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.

例:153=1的三次方+5的三次方+3的三次方.

法1:

#include
int main()
{
	int i = 0;
	int j = 0;
	int k = 0;
	for (i = 1; i < 10; i++)//百位
	{
		for (j = 0; j < 10; j++)//十位
		{
			for (k = 0; k < 10; k++)//个位
			{
				if (i * i * i + j * j * j + k * k * k == i * 100 + j * 10 + k)
				{
					printf("%d ", i * 100 + j * 10 + k);
				}
			}
		}
	}
	return 0;
}

运行结果:

153 370 371 407 

法2:

#include
int main()
{
	int n = 0;
	for (n = 100; n < 999; n++)//直接所有数循环
	{
		int i = n / 100;//百位
		int j = n / 10 % 10;//十位
		int k = n % 10;//个位
		if (i * i * i + j * j * j + k * k * k == i * 100 + j * 10 + k)
		{
			printf("%d ", i * 100 + j * 10 + k);
		}
	}
	return 0;
}

2.整型数组内函数求和 

法1:

#include
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int i = 0;
	int ret = 0;
	for (i = 0; i < sz; i++)
	{
		ret += arr[i];
	}
	printf("%d ", ret);
	return 0;
}

法2:采用函数方法

#include
int sum(int arr[], int n)
{
	int ret1 = 0;
	int i = 0;
	for (i = 0; i < n; i++)
	{
		ret1 += arr[i];
	}
	return ret1;
}
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret = sum(arr, sz);
	printf("%d ", ret);
	return 0;
}

3.斐波那契数列 

类似于1  1  2  3  5  8  13  21  34......

#include
//1  1  2  3  5  13
int main()
{
	int arr[15] = { 0 };
	arr[0] = 1;
	arr[1] = 1;
	int i = 0;
	for (i = 2; i < 15; i++)
	{
		arr[i] = arr[i - 1] + arr[i - 2];
	}
	for (i = 0; i < 15; i++)
	{
		printf("%d  ", arr[i]);
	}

	return 0;
}

运行结果:

 1  1  2  3  5  8  13  21  34  55  89  144  233  377  610

4.杨辉三角  

杨辉三角的每行行首和每行行尾的数都为1.而且每个数等于其左上及其正上方两数只和.

法1:

#include
int main()
{
	int arr[11][11] = { 0 };
	int i = 0;
	int j = 0;
	arr[0][0] = 1;
	for (i = 0; i < 11; i++)
	{
		printf("\n");
		for (j = 1; j <= i; j++)
		{
			arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
			printf("%3d", arr[i][j]);
		}
	}
	return 0;
}

你可能感兴趣的:(c语言,c++)