Nhập vào một số n (n<=10^6),đếm xem từ có bao nhiêu số x < n thoả mãn điều kiện sau: 10<x<n. +x là số có 2 chữ số và các chữ số phải giống nhau +x chia hết cho 9 Ví dụ sau: n=300 In ra 1 ( có số 99 thoả mãn) n=1412 In ra 3 ( có số 99;333;999)

2 câu trả lời

program hello;
uses crt;
var n, d, a, b, i: longint;
begin
 readln(n);
 for i:= 99 to n - 1 do 
  if i mod 9 = 0 then
   begin 
    a:= i mod 10;
    b:= i;
    while a = b mod 10 do b:= b div 10;
    if b = 0 then d:= d + 1;
   end;
 writeln(d);
readln;
end.

====================================
Số nhỏ nhất có hai chữ số giống nhau và chia hết cho 9 là 99 nên vòng lặp bắt đầu từ 99 nếu n nhỏ hơn hoặc bằng 99 thì không cần tính và in ra 0

Khi i chia hết cho 9 thì ta cho a = một số trong i ( a = i mod 10) và gán b = i

So sánh a với b mod 10 nếu bằng nhau thì b = b div 10 để so sánh tiếp.

khi so sánh hết và b = 0 thì đó là số cần tìm và cộng d thêm 1.

Trong ví dụ ở trên thì số 666 sẽ chia hết cho 9 và có các chữ số giống nhau

- Nếu x có ít nhất 2 chữ số:

uses crt;
var a,n,d:longint;
begin
    clrscr;
    readln(n);
    a:=3;d:=0;
    repeat
        a:=a*10+3;
        if a < n then
            if a mod 9 = 0 then
               inc(d);
    until a >= n;
    a:=9;
    repeat
        a:=a*10+9;
        if a < n then
            inc(d);
    until a >= n;
    writeln(d);
readln;
end.

- Nếu x phải là số có 2 chữ số :v

uses crt;
var a,n,d:longint;
begin
    clrscr;
    readln(n);
    if n > 99 then write(1)
        else write(0);
readln;
end.

- Thiếu số 666 nên thêm vô 1 ít :))
uses crt;
var a,n,d:longint;
begin
    clrscr;
    readln(n);
    a:=3;d:=0;
    repeat
        a:=a*10+3;
        if a < n then
            if a mod 9 = 0 then
                inc(d);
    until a >= n;
    a:=6;
    repeat
        a:=a*10+3;
        if a < n then
            if a mod 9 = 0 then
                inc(d);
    until a >= n;
    a:=9;
    repeat
        a:=a*10+9;
        if a < n then
           inc(d);
    until a >= n;
    writeln(d);
readln;
end.

Câu hỏi trong lớp Xem thêm