No.15 代碼練習

學習不易,需要堅持

1.在屏幕上輸出一個菱形。

2.求出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。
*/

求Sn=a+aa+aaa+aaaa+aaaaa的前5項之和,其中a是一個數字,
例如:2+22+222+2222+22222

1.
//打印菱形
#include <stdio.h>

int main()
{
	int n = 7 ;
	int a = 0 ;
	int b = 0 ;
	int i = 0 ;
	for(i=1; i<=n; i++) 
	{
		for(a=n-1; a>=i; a--)
		{
			printf(" ") ;
		}
		for(b=1; b<=2*i-1; b++)
		{
			printf("*") ;
		}
		printf("\n") ;
	}

	for(i=n-1; i>=1; i--)
	{
		for(a=i; a<=n-1; a++)
		{
			printf(" ") ;
		}
		for(b=1; b<=2*i-1; b++)
		{
			printf("*") ;
		}
		printf("\n") ;
	}
	return 0 ;
}

運行結果:

在這裏插入圖片描述

2.
//水仙花數
//此算法較爲普通,通俗易懂,就是判斷i^3 + j^3 +k^3 與 1*100 + j*10 + k 是否相等,並在循環裏來用if語句限定輸出的只能是三位數,嵌套了三層for循環,效率不高。
#include <stdio.h>

int main()
{
	int i = 0 ;
	int j = 0 ;
	int k = 0 ;
	printf("水仙花數爲:\n") ;

	for(i=0; i<=9; i++)
	{
		for(j=0; j<=9; j++)
		{
			for(k=0; k<=9; k++)
			{
				if(i*100 + j*10 + k > 99)
				{
					if(i*i*i + j*j*j +k*k*k == i*100 + j*10 + k)
					{
						printf("%d ",i*100 + j*10 + k) ;
					}
				}
			}
		}
	}
	printf("\n") ;
	return 0 ;
}

//水仙花數
//此方法較方法一效率稍高,將三位數的百位十位個位都分解出來,再進行判斷。

#include <stdio.h>
#include <math.h>

int main()
{
	int i = 0 ;  //百位
	int j = 0 ;  //十位
	int k = 0 ; //個位
	int n = 0 ;
	printf("水仙花數爲:") ;
	for(n=100; n<=999; n++)
	{
		i = n / 100 ;
		j = n / 10 % 10 ;
		k = n % 10 ;
		if(pow(i,3) + pow(j,3) + pow(k,3) == n)
		{
			printf("%d  ", n) ;
		}
	}
	printf("\n") ;
	return 0 ;
}

運行結果:
在這裏插入圖片描述

3.
//求Sn=a+aa+aaa+aaaa+aaaaa的前5項之和,其中a是一個數字,例如:2+22+222+2222+22222
#include <stdio.h>

int main()
{
	int a = 0 ;
	int num = 0 ;
	int sum = 0 ;
	int i = 0 ; //控制循環次數
	printf("求Sn=a+aa+aaa+aaaa+aaaaa的前5項之和,請爲a賦值: ") ;
	scanf("%d", &num) ;
	for(i=1; i<=5; i++)
	{
		a = a * 10 + num ;
		sum = sum + a ;
	}

	printf("Sn = %d\n", sum) ;
	return 0 ;

}

運行結果:
在這裏插入圖片描述

學習不易,需要堅持

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章