输出水仙花数、菱形图案

1、输出0~999中的水仙花数

/*在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。 例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数: 153 = 1^3 + 5^3 + 3^3。 370 = 3^3 + 7^3 + 0^3。 371 = 3^3 + 7^3 + 1^3。 407 = 4^3 + 0^3 + 7^3。*/

#include<stdio.h>
#include<windows.h>
#include<math.h>
int main()
{
	int i, a, b, c, a1;
	for (i = 0; i <= 999; i++)
	{
		for (i = 0; i <= 9; i++)//一位数,则是一次方
		{
			printf("%d\n", i);
		}
		for (i = 10; i <= 99; i++)//二位数,则是二次方
		{
			if (pow((i / 10), 2) + pow((i % 10), 2) == i)
			{
				printf("%d\n", i);
			}
		}
		for (i = 100; i <= 999; i++)//三位数,则是三次方
		{
			a1 = i % 100;//取个位和十位
			a = i / 100;//取百位
			b = a1 / 10;//取十位
			c = a1 % 10;//取个位
			if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
			{
				printf("%d\n", i);
			}
		}
	}
	system("pause");
	return 0;
}

2、输出菱形图案

#include<stdio.h>
#include<windows.h>
int main()
{
	int i, j, k;
	for (i = 1; i <= 13; i += 2)//输出图案前七行*的个数分别为1、3、5、7、9、11、13
	{
		for (j = (13 - i) / 2; j >= 1; j--)//输出前七行空格
		{
			printf(" ");
		}
		for (k = 1; k <= i; k++)//输入每行的*
		{
			printf("*");
		}
		printf("\n");
	}
	for (i = 11; i >= 1; i -= 2)//后六行*的个数分别为11、9、7、5、3、1
	{
		for (j = (13 - i) / 2; j >= 1; j--)//先输出后六行空格
		{
			printf(" ");
		}
		for (k = i; k >= 1; k--)//输出后六行的*
		{
			printf("*");
		}
		printf("\n");
	}
	system("pause");
	return 0;
}




猜你喜欢

转载自blog.csdn.net/na_hanqiannan/article/details/79774497