Tin học Pascal Bài tập về số

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Bài 1: Amstrong
Một số tự nhiên có n chữ số là một số Amstrong nếu tổng các lũy thừa bậc n của các chữ số của nó bằng chính số đó.
Giả sử N= a1a2...an ( có gạch trên đầu)
N là số Amstrong nếu N=a1^n+a2^n+...+an^n
Vd : số 153 là số Amstrong vì : 153=1^3+5^3+3^3
Yêu cầu : đếm xem có bao nhiêu số Amstrong có n chữ số.
File input: amstrong.inp
Gồm 1 dòng ghi số N ( N<7)
File output: amstrong.out
Gồm 1 dòng ghi số lượng các số Amstrong có N chữ số!

Mọi người gắng giúp mình nhé!
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
241
19
Quảng Trị
Trường TH&THCS Hải Ba
Mã:
Var
   fi,fo:text;
   TONG,K,I,N:INTEGER;
   Function amstrong(a:integer):Boolean;
   Var
        l,t,m,j,f:INTEGER;
   Begin
        t:=0;l:=a;
        While a<>0 do
         Begin
          m:=A mod 10;f:=1;
          For j:=1 to n do f:=f*m;
          a:=a div 10;t:=t+f;
         end;
        if t=l then amstrong:=true
        else amstrong:=false;
   end;
Begin
     Assign(fi,'amstrong.inp');reset(fi);
     Assign(fo,'amstrong.out');rewrite(fo);
     readln(FI,n);k:=1;TONG:=0;
     For i:=1 to n-1 do k:=k*10;
     For i:=153 to k*10-1 do
     IF amstrong(i)=true then tong:=tong+1;
     write(fo,tong);
     cLOSE(fi);close(fo);
END.
 
Top Bottom