水仙花数、打印菱形

1.求1-100000之间的水仙花数

#include<math.h>
int main()
{
	int i = 0;
	for (i = 0; i <= 100000; i++)
	{
		int sum = 0;
		int count = 1;
		//判断i是非为水仙花数
		//1.计算i的位数
		int tmp = i;
		while (tmp/=10)
		{
			count++;
		}
		//2.得到i的每一位,计算每一位的位数次方和
		tmp = i;
		while (tmp)
		{
			sum+=pow(tmp % 10, count);
			tmp /= 10;
		}
		//3.判断 
		if (sum == i)
		{
			printf("%d\n", i);
		}
	}
	return 0;
}

2.打印菱形

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-1; i++)
	{
		//打印一行
		int j = 0;
		//先打印空格
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		for (j = 0; j < 2 * (line - 1-i)-1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

3.计算求和
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222

int main()
{
 int a = 0;
 int n = 0;
 int i = 0;
 int ret = 0;
 int sum = 0;
 scanf("%d %d", &a, &n);
 for (i = 0; i < n; i++)
 {
  ret=ret*10 + a;
  sum += ret;
 }
 printf("%d\n", sum);
 return 0;
}


发布了13 篇原创文章 · 获赞 0 · 访问量 222

猜你喜欢

转载自blog.csdn.net/doudou0309/article/details/105303874