1樓:手機使用者
我說一下思路吧。
首先資料範圍是100000-999999的話,只要迴圈
for i:=100000 to 999999就可以了,這裡迴圈變數不要忘了要用longint
之後只要判斷素數和迴文數就可以了
可以用if 判斷迴文數(i)=false then flag=false;
else if 判斷素數(i)=false then flag(記錄)=false;
if flag=true then writeln(i);
其中flag先置為true
這樣就可以判斷出當前的這個i是不是即是素數也是迴文數了~
判斷素數的方法:
再開一個迴圈j,從2到i-1(簡化一下的話是round(i-1+1,理由去看素數的定義)
然後迴圈,如果i modj<>0 then flagg=false
flagg先置為true
最後如果flagg還是為true那麼這個數就是素數了
判斷迴文數的方法:
把當前這個數轉為字串形式(用函式str,方法參見str函式)
之後把這個字串反向輸入另一個字串(方法是for k:=length(那個字串變數名)) downto 1 do 第二個字串變數名:=第二個字串變數名+第一個字串變數名[k]
這時候不要忘記第二個字串變數名要先置為''
然後if 第二個字串變數名=第一個字串變數名 then 這個數就是迴文數了
把我說的穿起來就行了,那兩個判斷可以抽象出來作為函式function
以上。望採納。
2樓:
program dd;
var s:string;
t,n:longint;
begin
readln(s);
n:=length(s);
for t:=1 to length(s) div 2 doif s[t]<>s[n-t+1] then break;
if s[t]<>s[n-t+1] then writeln('no')
else writeln('yes');
end.
3樓:匿名使用者
你是新手吧
var s:string;
i,n:integer;
f:boolean;
begin
readln(s);
n:=length(s);
f:=true;
for i:=1 to n do
if s[i]<>s[n-i+1] then f:=falseif f then writeln("yes")else writeln("no");
end.
4樓:匿名使用者
var n:string;k:boolean; i:integer;
begin
readln(n);k:=true;
for i:=1 to length(n) do if n[i]<>n[length(n)-i+1] then k:=false;
if k then writeln('yes')else writeln('no');
end.
pascal判斷是否構成迴文怎麼寫? (求詳解)
5樓:二十二翰林
你好!下面是較詳細的解法:
所謂迴文,通俗地講就是正過來反過去都一個樣,那麼假設待判斷的資料長度為n,我們就逐一判斷第一個和第n個、第二個和第n-1個、第三個和第n-2個……這些是否一樣即可。下面這則程式運用了字串思想:
program lx;
varx:string;
i,j:integer;
begin
readln(x); //讀入資料
for i:=1 to length(x) div 2 do //求出該資料長度的一半。
if x[i]<>x[length(x)-i+1] then //length(x)就是前面所說的n。
begin
writeln('bu gou cheng'); exit; //如果對稱的兩位不相等,說明他們構不成迴文,於是輸出不構成,並立即結束程式。
end;
writeln('gou cheng'); //構成的話,就輸出構成。
end.
謝謝。祝你好運!
6樓:小星嫻
function pan:boolean;
var i:longint;
b:arr;
begin
for i:=1 to a[0] do
b[i]:=a[a[0]-i+1];
for i:=1 to a[0] do
if a[i]<>b[i] then exit(false);
exit(true);
end;
a陣列是你要判斷的一個一串。b陣列就把a陣列倒過來,然後要是迴文的話,a,b陣列就相等。就這樣判斷。
pascal遞迴法判斷所輸入的一行字元是否迴文。
7樓:匿名使用者
vars: string;
function sym(start: integer): boolean;
vartail: integer;
begin
tail := length(s) - start + 1;
if start > tail then
sym := false
else if start = tail then
sym := s[start] = '-'
else sym := (s[start] = s[tail]) and
sym(start + 1);
end;
begin
write('請輸入字元: ');
readln(s);
if (length(s) >= 1) and sym(1) then
writeln('it is symmetry!')
else writeln('it is not symmetry!');
end.
如何判斷一個字串是否是迴文
8樓:匿名使用者
一句話概括就是關於中心左右對稱的字串屬於迴文。
所謂迴文字串,就是一個字串,從左到右讀和從右到左讀是完全一樣的。比如"level" 、 「aaabbaaa」
題目:判斷一個字串是否為迴文
解法:遞迴
遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決
問:如何縮少問題規模?
答:通過觀察可以知道,一個迴文字串其中內部也是迴文。所以,我們只需要以去掉兩端的字元的形式一層層檢查,每一次的檢查都去掉了兩個字元,這樣就達到了縮少問題規模的目的。
新問題與原問題有著相同的形式,當去掉兩端字元後的字串,其產生的新問題同樣是檢查這個字串是否迴文。
遞迴的結束需要簡單情景
1. 字串長度可能會奇數或偶數:
如果字串長度是奇數,字串會剩下最中間那位字元,但其不影響迴文。當檢查到長度為1的時候即代表此字串是迴文
如果字串長度是偶數,當兩端的字串兩兩比較檢查後不會剩下字元。即檢查到長度為0的時候即代表此字串是迴文
2. 如果檢查到兩端兩個字元不相同。則說明此字串不是迴文,直接返回0,不需要繼續檢查
9樓:無法無天
首先,理解什麼是迴文字串,簡單的一句話概括就是關於中心左右對稱的字串。例如:abcba或者aaccaa是迴文字串;abcca或者aabbcc不是迴文字串。
判斷方法就是,依次看兩端的字元是否相等。例如:abcba,第一個字元與最後一個字元相等,第二個字元與倒數第二個字元相等,第三個字元是中心字元,無需判斷。
如果是aaccaa就要判斷。所以上面的字串是迴文字串。
以下是c語言實現判斷迴文字串的**。
#include
#include
int main(void)
{char s[30];
int b=0; //1表示不是迴文字串puts("請輸入一個字串:");
scanf("%s",s);
for(int i=0;i
10樓:匿名使用者
如果一個字串,從左右來讀都一樣,就稱它為迴文
舉個例子:
abba
判斷輸入的字串是否為「迴文」
11樓:匿名使用者
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int judger(char a)
return 1;
}main()
else
system("pause");
} 測試資料:
louzhunihao
no!請按任意鍵繼續. . .
accepttpecca
yes!
請按任意鍵繼續. . .
樓主好運!
12樓:王大前
編寫程式,是則輸出yes,否則輸出no。
#include
using namespace std;
int main()
{char s[100];
int i,j;
cout<<"請輸入字串s:"
for(i=0;s[i];i++);
for(i--,j=0;jif(ielse cout<<"是迴文串" 判斷一個字串是否為迴文字串,**錯了,求解。 13樓:育知同創教育 1首先,理解什麼是迴文字串,簡單的一句話概括就是關於中心左右對稱的字串。例如:abcba或者aaccaa是迴文字串;abcca或者aabbcc不是迴文字串。 2判斷方法就是,依次看兩端的字元是否相等。例如:abcba,第一個字元與最後一個字元相等,第二個字元與倒數第二個字元相等,第三個字元是中心字元,無需判斷。 如果是aaccaa就要判斷。所以上面的字串是迴文字串。 以下是c語言實現判斷迴文字串的**。 #include #include int main(void) if(b) printf("這不是迴文字串。"); else printf("這是迴文字串。"); return 0;} 14樓: 三個問題: for迴圈中的多個判斷條件根據邏輯使用&&或者||連線,如果用,表示以最靠後的條件結果為準,此處結果雖然不會有影響,但是邏輯還是要明白; 初始條件中的j=str.length+1和後面的str.charat(j),明顯越界,導致出錯; i<=(str.length+1)/2這樣操作邏輯上來說會導致判斷到字串中間靠後一個(偶數長度),但是在問題2解決的前提下結果不會出錯,但是會多一次無用操作。望採納 include include void main while m 0 k for i 0 i if digit i digit k break if i else printf ld is a palindrome.n int exam char str str p return 1 includ... var settime 4 00 字串settime var i settime.indexof 如果settime包含 則 i 返回 在settime裡面的位置,否則返回 1 import org.apache.commons.lang.stringutils stringutils.contai... z伊凡 正則匹配法比較嚴謹一些,你說的數字有沒有條件限制?下面是一些常用的判斷各種數字的正規表示式 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 ...C語言,設計函式,判斷字串是否迴文,即順讀和倒讀的結果都一樣。若是,返回1若否,返回
js判斷某字串中是否存在一段字串
python判斷字串是否為數字