水仙番号C言語とPythonバージョン

水仙の数

  • これは、例えば、100〜1000内の3桁の数である:153 = 1 1 1 + 5 5 5 + 3 3 3この数は、水仙の数と呼ばれます。

C言語の実装

  • プロセスは非常に単純で、網羅的で、多くのサイクルがあります
// 水仙花数
#include <stdio.h>
#include <math.h>
int main()
{
    
    
	int b, s, g;
	for(int num = 100; num < 1000; num++)
	{
    
    
		b = num/100;
		s = num/10%10;
		g = num%10;
		// 使用计算幂的函数
		if (num == (pow(b, 3) + pow(s, 3) + pow(g, 3)))
		{
    
    
			printf("%5d\n", num);
		}
	}
	return 0;
}

Pythonの実装

  • Pythonの除算によって取得される値は浮動小数点型である可能性があるため、Pythonの値はint()で変換する必要があることに注意してください
# 水仙花数
for num in range(100, 1000):
    b = int(num/100)
    s = int(num/10)%10
    g = num%10
    if num == b**3 + s**3 + g**3:
        print("水仙花数: ", num)

ジェネレーターの実装

  • 前の記事と同様に、フィボナッチ数列が実現され、水仙の数がここで実現されます。
  • さらに、ジェネレーターの実装は本当に便利です!イテレータバージョンは作成していません。ジェネレータは、iterメソッドとnextメソッドを自動的に作成します。これは、非常に単純で単純化されています。
def hua():
    for num in range(100, 1000):
        b = int(num/100)
        s = int(num/10)%10
        g = num%10
        if num == b**3 + s**3 + g**3:
            yield num


for i in hua():
    print(i)

结果:
153
370
371
407

おすすめ

転載: blog.csdn.net/pythonstrat/article/details/112739953