回文数(Xiaobaiの学習の旅)

数が回文であるかどうかを判別します。例:

入力:121
出力:true

入力:-121
出力:false

入力:1232321
出力:true

上記の例は、数が対称であるかどうかを確認するための回文数です。
私のメソッドは配列または文字列を使用します。C言語にはbool型がありますが、これは「0」falseと「1」trueのみを表します。これに依存して「true」または「false」を直接出力することはできません。
はっきりとは言えませんが、美味しいコードを書いてみましょう!

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void)
{
    
    
	int i=0;
	char num[100];
	bool flag=false;
	printf("please input a set of number");
	printf("(Judge whether it is palindrome number):\n");

	scanf("%s", num);
	int length = strlen(num);
	while (i < (length/2)) {
    
    
		if (num[i] == num[length - i - 1])
		{
    
    
			flag = true;
			
		}
		if (flag == false)
		{
    
    
			printf("false\n");
			break;
		}
		i++;

		
	}
	if (flag != false)
	{
    
    
		printf("true\n");
	}
	return 0;
}

strlen()はint型の文字列(配列)の長さを計算できないため、char型のみを使用できますが、効果は同じです。コード

i <(長さ/ 2)

計算の半分で十分である限り、完全な計算はメモリを消費するだけで、コードは単純で見えません。複雑になると、実行速度に影響を与え、時間を節約し、良い習慣を養います。
また、このメソッドは多くのtrueを出力するため、ループ内でtrueを直接出力することはできません。1回のヒットで殺す偽の質問を見つけます。確立されていない場合は、ループから飛び出して偽を印刷し、後ろ向きに考え、ゆっくりと育成します。すべての質問に対する答えは原則としてあるので、ソースに戻ります。これは、アルゴリズムの問​​題を書くための非常に重要な考え方です。
私はまだ初心者です。まだ多くのことを知らないので、Cの学習が終わったら変更できます。
それをサポートします。
ご不明な点がございましたら、Xiaobaiまでお問い合わせください。
大きな男がコードの問題があると思ったら、もっと勤勉になれます。ポインタを教えてください。私は学ぶのが大好きです。ねえ黒u。次回があります。

おすすめ

転載: blog.csdn.net/weixin_52199109/article/details/110428450