Phùng Trọng Hiếu
Các bạn giúp mình bài này với (thuật toán thôi cũng được ạ).Bài 3. Đối xứngMột số nguyên dương được gọi là số nhị phân đối xứng và cân bằng nếu dạng biểu diễn nhị phân của số đó là một xâu đối xứng và có số bit lượng bit 0, bit 1 chênh nhau không quá 1.Chẳng hạn, số 313 có dạng biểu diễn nhị phân 100111001 là một xâu đối xứng, số bit 1 bằng 5, số bit 0 bằng 4, 313 là một số nhị phân đối xứng và cân bằng.Cho số nguyên dương N hãy đếm số số đối xứng nhị phân cân bằng nhỏ hơn NDữ liệu Balpalin.inp1...
Đọc tiếp

Những câu hỏi liên quan
Long ca ca
Xem chi tiết
Phía sau một cô gái
30 tháng 6 2023 lúc 20:10

program superSymmetricalSubstring;

var

      s: string;

function isSymmetrical(str: string): boolean;

var

      i, len: integer;

begin

      len := length(str);

      for i := 1 to len div 2 do

      begin

            if str[i] <> str[len - i + 1] then

            begin

                  exit(false);

            end;

      end;

      exit(true);

end;

function countSuperSymmetricalSubstrings(s: string): integer;

var

      i, j, len, count: integer;

begin

      len := length(s);

      count := 0;

      for i := 1 to len do

      begin

            for j := 2 to len - i + 1 do

            begin

                  if isSymmetrical(copy(s, i, j)) then

                  begin

                        count := count + 1;

                  end;

            end;

      end;

      count := count + len;

      exit(count);

end;

begin

      write('Nhap xau S: ');

      readln(s);

      writeln('So xau con sieu doi xung cua S: ', countSuperSymmetricalSubstrings(s));

      readln;

end.

Bình luận (1)
Long ca ca
Xem chi tiết
meme
7 tháng 9 2023 lúc 13:41

Dưới đây là một ví dụ về cách giải quyết bài toán này bằng ngôn ngữ Pascal:

 function isPalindrome(s: string): boolean; var i, n: integer; begin n := Length(s); for i := 1 to n div 2 do begin if s[i] <> s[n - i + 1] then begin Result := false; Exit; end; end; Result := true; end; function countSuperPalindromes(s: string): integer; var i, j, n: integer; subStr: string; begin n := Length(s); Result := 0; // Đếm số xâu con đối xứng for i := 1 to n do begin subStr := '' for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; // Đếm số xâu con siêu đối xứng for i := 1 to n - 1 do begin subStr := '' for j := i to n do begin subStr := subStr + s[j]; if isPalindrome(subStr) then Inc(Result); end; end; end; var s: string; begin s := 'ababcb' writeln(countSuperPalindromes(s)); end.

Kết quả của ví dụ trên sẽ là 3, tương ứng với 3 xâu con siêu đối xứng của xâu "ababcb" là "aba", "bcb", và "ababcb".

Lưu ý rằng đây chỉ là một cách giải quyết bài toán và có thể tồn tại các cách giải khác.

Bình luận (1)
ngoc tran
Xem chi tiết
Thảo
Xem chi tiết
Nguyễn Lê Phước Thịnh
17 tháng 3 2022 lúc 14:51

input: Dãy số nguyên

Output: Kiểm tra xem dãy có đối xứng không

*Thuật toán

Bước 1: Nhập n và nhập dãy số

Bước 2: i←1; kt←true;

Bước 3: Nếu a[i]<>a[n-i+1] thì kt←false;

Bước 4: i←i+1;

Bước 5: Nếu i<=n thì quay lại bước 3

Bước 6: Nếu kt=true thì đây là dãy đối xứng và ngược lại

Bước 7: Kết thúc

Bình luận (0)
Minh
Xem chi tiết
TTTheGodd
Xem chi tiết
nguyễn cường
Xem chi tiết
hong pham
Xem chi tiết
Nguyễn Hoàng Phúc
10 tháng 8 2016 lúc 10:39

 AE = AD; AD = BC nên AE = BC(1) 
DC = AB; DC = CF nên AB = CF (2) 
GÓC EAB = BCF (Đồng vị) (3) 
Từ (1); (2); (3) -> tgiac EAB = BCF (cgc) -> EB = BF (*) 
Mặt khác: GÓC EBA = EFD (đồng vị); ABC = ADC (gt); CBF = AEB (đồng vị) 
Cộng vế với vế: EBA + ABC + CBF = EFD + ADC + AEB 
Mà EFD + ADC + AEB = 180 độ -> EBA + ABC + CBF = 180 độ (**) 
Từ (*); (**) suy ra điểm E đối xứng với điểm F qua điểm B.

Bình luận (0)
nguyeng ngoc hau
19 tháng 10 2017 lúc 19:41

jhnjjg

Bình luận (0)
Huy Hoang
1 tháng 7 2020 lúc 15:36

D F A B C E

Ta có: ABCD là hình bình hành nên AB // CD, AD//BC.

+ E đối xứng với D qua A

=> AE = AD

Mà BC = AD

=> BC = AE.

Lại có BC // AE (vì BC // AD ≡ AE)

=> AEBC là hình bình hành

=> EB // AC (1).

+ F đối xứng với D qua C

=> CF = CD

Mà AB = CD

=> AB = CF

Mà AB // CF (vì AB // CD ≡ CF)

=> ABFC là hình bình hành

=> AC //= BF (2)

Từ (1) và (2) suy ra E, B, F thẳng hàng và BE = BF

=> B là trung điểm EF

=> E đối xứng với F qua B

Bình luận (0)
 Khách vãng lai đã xóa
Hoàng Hugi
Xem chi tiết
Nguyễn Lê Phước Thịnh
19 tháng 12 2021 lúc 23:33

#include <bits/stdc++.h>

using namespace std;

string st;

int d,i;

bool kt;

int main()

{

getline(cin,st);

kt=true;

d=st.length();

for (i=0; i<=d-1; i++)

if (st[i]!=st[d-i-1]) kt=false;

if (kt==true) cout<<"YES";

else cout<<"NO";

return 0;

}

Bình luận (0)