機能: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