Trang chủ Tin Học Lớp 9 Những bài này mình tự làm được hết rồi nhưng...

Những bài này mình tự làm được hết rồi nhưng mà mình đăng lên để mọi người chia sẻ thuật toán với nhau sao cho nó tối ưu nhất nhé. Mình cảm ơn ! Bài 1:Số chính

Câu hỏi :

Những bài này mình tự làm được hết rồi nhưng mà mình đăng lên để mọi người chia sẻ thuật toán với nhau sao cho nó tối ưu nhất nhé. Mình cảm ơn ! Bài 1:Số chính phương kép. Định nghĩa số chính phương kép : Là số chính phương có các chữ số khác 0. Và nếu bớt đi mỗi chữ số của nó một đơn vị thì cũng được một số chính phương. Yêu cầu: Bạn hãy kiểm tra xem một số có là số chính phương kép không. ví dụ inp out 36 YES Bài 2:Công thức hóa học. Nhập vào bàn phím một CTHH của hợp chất, hãy tính: a)số lượng nguyên tố có trong công thức b)tổng số các nguyên tử có trong công thức. lưu ý: nguyên tố hóa học chỉ là các nguyên tố có một chữ cái số lượng nguyên tố tối đa là 2 chữ số VÍ DỤ H2O a)2 b)3 C6H12O6 a)3 b)24

Lời giải 1 :

Bài 1: (số 36 là sai nha bạn vì số 3 không phải là số chính phương)

const fi='scpk.inp';
   fo='scpk.out';
var f:text;
 n,i:longint;
 s:string;
 kt:boolean;
function cp(x:longint):boolean;
begin
 if sqr(trunc(sqrt(x)))=x then cp:=true 
 else cp:=false;
end;
begin
 assign(f,fi);reset(f);readln(f,n);close(f);
 assign(f,fo);rewrite(f);
 str(n,s);
 for i:=1 to length(s) do 
 if s[i]='0' then kt:=false
 else
 begin
  if cp(n)=true then n:=n div 10;
  if cp(n)=true then kt:=true else kt:=false;
 end;
 if kt=true then write(f,'yes') else write(f,'no');
 close(f);
end.

Bài 2:

const fi='cthh.inp';
   fo='cthh.out';
var f:text;
 d,i,x,kt,tong:longint;
 s,t:string;
function dcs(x:longint):longint;
begin
 dcs:=0;
 repeat 
  dcs:=dcs+1;
  x:=x div 10;
 until x=0;
end;
begin
 assign(f,fi);reset(f);readln(f,s);close(f);
 assign(f,fo);rewrite(f);
 d:=0; 
 for i:=1 to length(s) do 
 if s[i] in ['A'..'Z'] then inc(d);
 i:=0; t:=''; tong:=0;
 while i<=length(s) do
   begin
    while (s[i] in ['0'..'9']) and (i<=length(s)) do
     begin
      t:=t+s[i];
      val(t,x,kt);
      inc(i);
     end;
    if dcs(x)<3 then tong:=tong+x;
    x:=0;
    t:='';
    inc(i);
   end;
 writeln(f,d);
 writeln(f,tong);
 close(f);
end.

Thảo luận

-- mình lười nên làm theo cách đó, còn cách gọi là quay lui thì phải suy nghĩ thêm, bạn cho mình 5sao và câu trả lời hay nhất nhé. Cảm ơn :(((
-- bạn ơi bạn hiểu đề k ạ?
-- 36 là số chính phương kép bởi vì
-- mỗi chữ số của 36 giảm đi 1 đơn vị nghĩa là 3->2;6->5 nghĩa là ta sẽ có số 25 cũng là số chính phương
-- ồ mình tưởng số 36 bỏ hàng đơn vị thành số 3
-- để mình làm lại cho
-- oke bạn nhé

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, sắp phải bước vào một kì thi căng thẳng và sắp chia tay bạn bè, thầy cô và cả kì vọng của phụ huynh ngày càng lớn mang tên "Lên cấp 3". Thật là áp lực nhưng các em hãy cứ tự tin vào bản thân là sẻ vượt qua nhé!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247