C言語の回文

機能:11〜999 mの検索及び出力数、満たすM、M2及びM3はパリンドロームです。

いわゆるパリンドロームは数字例えば121,676,94249ような左右対称の整数を指します。数M = 11、M 2 = 121、M3 = 1331として上記条件を満足するすべてのパリンドロームです。

そうでなければ0を返し、それが回文である場合、関数は1を返し、この機能を達成するために、関数intのsvalue(長いm)を用意してください。out.datでファイルに出力した後。
書式#include <stdio.hに>

int型jsValue(ロングN)

{int型I、技研、半分。チャーXY [20]。

LTOA(N、XY、10) ; / itoaは、ここで使用されない注()関数は、限り、n型である /技研= STRLEN(XY)。

半分=技研/ 2;

以下のための(私は= 0; I <半分; I ++)

もし(XY [i]を= XY [-strl]!)ブレーク。

もし(I> =半分)の戻り1;

それ以外の戻り0;

}

メイン()

{長いM。

FILE *アウト。

アウト=のfopen(「out.dat」、「W」)。

以下のための(M = 11、M <1000; M ++)

{

IF(jsValue(M)&& jsValue(M 、M)&& jsValue(M、M * M))

{のprintf( "M =%4LD、M M =%6LD、M、M 、M =%8LD \ n"は、M、M、M、M 、M、M)。

関数fprintf(OUT、 "M =%4LD、M M =%6LD、M、M 、M =%8LD \ n"は、M、M、M、M 、M、M)。

}

}

fcloseを(アウト)。

システム(「一時停止」)。

}

または、次の解決策:

int型jsValue(ロングN)

{long int型、S = 0、K。

K = N。

一方、(K)

{P = P * + 10〜10%。

K / = 10。

}

(S == n)が1を返す場合、

もし(S = N!)の戻り0;

}

出力は次のようになります。

M = 11、M M = 121、M、M * M = 1331

M = 101、M M = 10201、M、M * M = 1030301

M = 111、M M = 12321、M、M * M = 1367631

公開された239元の記事 ウォンの賞賛3 ビュー3161

おすすめ

転載: blog.csdn.net/it_xiangqiang/article/details/105164305