Thứ Bảy, 13 tháng 7, 2019

Bài 2 - Giải thuật nhập môn

Tìm tất cả các số có 3 chữ số sao cho tổng lập phương của các chữ số bằng chính số đó
Ví dụ: 153=13+53+33  
Dữ liệu xuất Xuất ra file LP.OUT, mỗi dòng là một số tìm được.

8 nhận xét:

  1. Uses crt;
    Var i:longint;
    f:text;
    function test(a:longint):boolean;
    Var j,x:longint;
    Begin
    x:=a;
    j:=0;
    While a<>0 do
    Begin
    j:=j+(a mod 10)*(a mod 10)*(a mod 10);
    a:=a div 10;
    end;
    If j=x then exit(true) else exit(false);
    end;
    Begin
    assign(f,'LP.OUT');
    rewrite(f);
    For i:=100 to 999 do
    If test(i)=true then Writeln(f,i);
    close(f);
    end.

    Trả lờiXóa
  2. #include

    using namespace std;

    bool check(int x) {
    int sum = 0, y=x;
    while (x) {
    int z = x%10; x/=10;
    sum+=(z*z*z);
    }
    return sum==y;
    }

    int main() {
    freopen("LP.out", "w", stdout);
    for(int i=100; i<=999; i++)
    if (check(i)) cout << i << "\n";
    return 0;
    }

    Trả lờiXóa
  3. #include
    using namespace std;
    int main(int argc, char** argv) {
    int d,b,k;
    for (int a=100;a<1000;a++)
    {
    d=a%10;
    b=(a/10)%10;
    k=a/100;
    if (a==(d*d*d)+(b*b*b)+(k*k*k))
    {
    cout <<""<<a<<"\n";
    }
    }
    return 0;
    }

    Trả lờiXóa
  4. Quách Đông Đônglúc 22:21 25 tháng 7, 2019

    #include
    #include
    using namespace std;
    int main(int argc, char** argv) {
    int a,b,c;
    ofstream cout;
    cout.open("D:/Dong/LP.txt");
    for (int i=100;i<1000;i++){
    a=i/100;
    b=(i%100)/10;
    c=i%10;
    if (a*a*a+b*b*b+c*c*c==i) cout <<i<<endl;
    }
    cout.close();
    return 0;
    }

    Trả lờiXóa
  5. Quách Đông Đônglúc 22:35 25 tháng 7, 2019

    var i,a,b,c:integer;
    begin
    assign (output,'D:\Dong\LP2.txt');
    rewrite (output);
    for i:=100 to 999 do
    begin
    a:=i div 100;
    b:=(i div 10) mod 10;
    c:=i mod 10;
    if a*a*a+b*b*b+c*c*c=i then writeln (i);
    end;
    close (output);
    end.

    Trả lờiXóa
  6. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  7. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  8. #include

    using namespace std;

    int main()
    { freopen ("LP.OUT","w",stdout);
    for (int i=100;i<1000;i++){
    int t =i/100;
    int c =(i/10)%10;
    int dv=i%10;
    if (t*t*t+c*c*c+dv*dv*dv==i){
    cout << i << endl;
    }
    }
    return 0;
    }

    Trả lờiXóa

Dùng nick gmail để bình luận. Nếu lần đầu tiên bạn làm điều này thì hệ thống sẽ chuyển bạn sang trang blogger và hỏi bạn chọn tên hiển thị là gì. Bạn hãy nhập tên hiển thị rồi ok là được. Những lần bình luận sau hệ thống sẽ không hỏi nữa. Cảm ơn!

Bài được xem nhiều nhất