tháng 6 2022

 Cho xâu S gồm n ký tự, biết rằng xâu S chỉ chứa các ký tự in thường trong bảng chữ cái tiếng Anh (10<n<100);

            Yêu cầu: Hãy tìm xâu ký tự dài nhất có chứa 1 ký tự “a” và 1 ký tự “z” xuất hiện trong xâu S.

            Dữ liệu: Cho trong tập tin xau.inp gồm một dòng chứa các ký tự của xâu S.

            Kết quả: Ghi ra tập tin xau.out gồm một dòng ghi xâu ký tự vừa tìm được. Nếu tìm được nhiều hơn 1 xâu ký tự thoả mãn đề bài thì ghi xâu ký tự đầu tiên tính từ trái sang phải. Nếu không tìm được xâu thoả mãn đề bài thì ghi “Khong tim duoc”.

            Ví dụ:

xau.inp

xau.out

abcdefghijabca

Khong tim duoc

Abczbczdefgh

abczbc


    CODE THAM KHẢO:
    Program Xaucon;
   Var _S,s:string;
    //=======================
    procedure ReadFile;
    Begin
        Assign(input,'xau.inp');reset(input);
        readln(s);
    End;
    //=========================
    procedure Process;//ky thuat 2 con tro
    var N,M,d,l,r: integer;
      st:string;
    Begin
        N:=length(s);d:=0;l:=1;
       For r:=1 to N do
       Begin
          if((s[r]='a') or(s[r]='z')) then inc(d);
          while (d>2) do
          Begin
              if((s[l]='a') or(s[l]='z')) then dec(d);
              inc(l);
          End;
          if(d=2) then
            Begin
                St:=copy(s,l,r-l+1);
               M:=length(st);
                if(length(_S)<M) then
                  Begin
                      if ((pos('a',st)>0)and(pos('z', st)>0))  then _S:=st;
                  End;
              End;
       End;//for r
    End;
    //============================
    Begin
        _S:=''; //_S= save string
        ReadFile;
        assign(output,'xau.out'); rewrite(output);
        Process;
        if (length(_S)>1) then write(_S)
        else write('Khong tim duoc');
        //close(output);
    End.


             Yêu cầu: Cho hai số nguyên dương N, M . Hãy đếm số lượng số nguyên dương có không quá N chữ số và tổng các chữ số bằng M.

            Input:

-     Dòng đầu chứa số nguyên T (T<=10) là số bộ dữ liệu.

-     T dòng sau, mỗi dòng chứa hai số nguyên N, M.

Output: Gồm T dòng, mỗi dòng là số lượng số nguyên dương có không quá N chữ số và tổng các chữ số bằng M tương ứng với bộ dữ liệu vào.

NM.INP

NM.OUT

1

2 1

2


    CODE THAM KHẢO:
    var  n,m,t,i,a,d,j: longint;
    procedure tao(x:byte; var a: longint);
    var j: longint;
    begin
            a:=1;
            for j:=1 to x do a:=a*10;
    end;
    function tongchuso(b:longint): longint;
    var s,k: longint;
    begin
            s:=0;
            while b >0 do
            begin
                    k:= b mod 10;
                    s:=s+k;
                    b:=b div 10;
            end;
            tongchuso:=s;
    end;
    begin
            assign(input,'NM.INP'); reset(input);
            assign(output,'NM.OUT'); rewrite(output);
            while not eof(input) do
            begin
                    readln(T);
                    for j:=1 to T do
                    begin
                            readln(N,M);
                            tao(n,a);
                            for i:=1 to a-1 do
                            if tongchuso(i) = M then inc(d);
                            writeln(d);
                            d:=0;
                    end;
            end;
            close(input); close(output);
    end.


Viết chương trình in ra các số nguyên từ 1 đến N2 theo hình xoắn ốc với N là số tự nhiên lớn hơn 3 được nhập vào từ bàn phím.

Chương trình ví dụ:

Moi cac ban nhap vao so N: 4

Ta duoc bang sau:

1
2
3
4
12
13
14
5
11
16
15
6
10
9
8
7
    
    CODE THAM KHẢO:
    Uses Crt;
    Var N, X, k : Integer;
    M : Array[1..100, 1..100] Of Integer;
    Left, Right, Top, Bottom : Integer;
    Begin
    ClrScr;
    N := 0;
    While ((N < 3) Or (N > 100)) Do
    Begin
    Write('Moi ban nhap vao so N: ');
    ReadLn(N);
    End;
    WriteLn('Ta duoc bang sau:');
    X := 1;
    Left := 1;
    Right := N;
    Top := 1;
    Bottom := N;
    While (X <= N * N) Do
    Begin
    For k := Left To Right Do Begin M[k, Top] := X; Inc(X); End;
    Inc(Top);
    For k := Top To Bottom Do Begin M[Right, k] := X; Inc(X); End;
    Dec(Right);
    For k := Right DownTo Left Do Begin M[k, Bottom] := X; Inc(X); End;
    Dec(Bottom);
    For k := Bottom DownTo Top Do Begin M[Left, k] := X; Inc(X); End;
    Inc(Left);
    End;
    For X := 1 To N Do
    Begin
    For k := 1 To N Do Write(M[k, X] : 4);
    WriteLn;
    End;
    ReadLn;
    End.



Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget