Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Tìm số chính phương gần x nhất

  1. #1
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    Mặc định Tìm số chính phương gần x nhất

    đề bài : Nhập vào 1 số x <1000000. Nếu x là số chính phương thì xuất ra số x, nếu x không phải số chính phương thì xuất ra số chính phương gần x nhất.
    Em định dùng 1 hàm kiểm tra số chính phương rồi cho chạy vòng for
    nếu kt_scp(a[i])< x thì xuất ra x, nhưng còn trường hợp scp gần x nhất là số lớn hơn x thì e chưa nghĩ ra. Mấy pro chỉ dùm e thuật toán với

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    chạy for làm chi cho tốn thời gian ?????
    như thế này có phải nhanh hơn nhiều ko ?
    PHP Code:
    #include <iostream>
    using namespace std
    #include "math.h"

    /*
    // nếu trong visual studio 2008 thì cần cái này 
    //nếu cũ hơn thì ko cần
    double sqrt(int n)
    {
        return sqrt(double(n));
    }
    */
    char chinhphuong(int n)
    {
        if (
    n<=0) return 1;
        if (
    n==int(sqrt(n))*int(sqrt(n))) return 1;
        return 
    0;
    }
    void main()
    {
        
    int x;
        
    cout<<"Nhap vao x : ";
        
    cin>>x;
        if (
    chinhphuong(x)) cout<<"x chinh phuong";
        else 
    cout<<"so chinh phuong gan x nhat la : " <<(int(sqrt(x)+0.5))*(int(sqrt(x)+0.5));
        
    system("pause");

    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  3. #3
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    C Code:
    1. #include <math.h>
    2. int find_least_sqr(int n)
    3. {
    4.     int sqrtn = sqrt((double)n);
    5.     if(sqrtn * sqrtn == n)
    6.         return n;
    7.     int n1 = (sqrtn - 1) * (sqrtn - 1);
    8.     int n2 = (sqrtn + 1) * (sqrtn + 1);
    9.  
    10.     int d1 = n - n1;
    11.     int d2 = n2 - n;
    12.     if(d1 > d2)
    13.         return n2;
    14.     return n1;
    15.  
    16. }

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Trích dẫn Nguyên bản được gửi bởi namdq2k Xem bài viết
    C Code:
    1. #include <math.h>
    2. int find_least_sqr(int n)
    3. {
    4.     int sqrtn = sqrt((double)n);
    5.     if(sqrtn * sqrtn == n)
    6.         return n;
    7.     int n1 = (sqrtn - 1) * (sqrtn - 1);
    8.     int n2 = (sqrtn + 1) * (sqrtn + 1);
    9.  
    10.     int d1 = n - n1;
    11.     int d2 = n2 - n;
    12.     if(d1 > d2)
    13.         return n2;
    14.     return n1;
    15.  
    16. }
    nam ơi ko cần phải tính 2 số chính phương đâu,
    PHP Code:
    (int(sqrt(x)+0.5))*(int(sqrt(x)+0.5)); 
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    anh langman ơi, e chạy tay (không có công cụ) code của anh thì nếu nhập x =6 thì nó xuất tra 9 phải không ạ.
    Theo đề thì nó phải xuất ra 4 mới đúng :(
    code của anh nam e thấy đúng hơn chứ ạ.
    p/s: e chạy tay nên nếu có gì sai mong mấy anh chỉ bảo thêm ^^
    Đã được chỉnh sửa lần cuối bởi aydada : 28-03-2010 lúc 10:25 AM.

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Mặc định Tìm số chính phương gần x nhất

    Trích dẫn Nguyên bản được gửi bởi aydada Xem bài viết
    anh langman ơi, e chạy tay (không có công cụ) code của anh thì nếu nhập x =6 thì nó xuất tra 9 phải không ạ.
    Theo đề thì nó phải xuất ra 4 mới đúng :(
    code của anh nam e thấy đúng hơn chứ ạ.
    p/s: e chạy tay nên nếu có gì sai mong mấy anh chỉ bảo thêm ^^
    náo, :P
    nhập 6 nó ra 4 đấy, ai bảo cậu nó ra 9, tôi nhìn bằng mắt cũng thấy nó ra 4
    cái cậu aydada này tung hỏa mù à ?

    chạy tay là chạy như nào ?????

    (int(sqrt(x)+0.5))*(int(sqrt(x)+0.5));

    thế int(sqrt(x)+0.5) của 6 lại bằng 3 à? bạn nên xem lại kiến thức cơ bản đi
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    03 2010
    Nơi ở
    My Home
    Bài viết
    772

    Hì tớ nhầm chút!
    Đây mới đúng.

    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. int find_least_sqr(int n)
    4. {
    5.     int sqrtn = sqrt((double)n);
    6.     if(sqrtn * sqrtn == n)
    7.         return n;
    8.     int n1 = sqrtn  * sqrtn ;
    9.     int n2 = (sqrtn + 1) * (sqrtn + 1);
    10.  
    11.     int d1 = n - n1;
    12.     int d2 = n2 - n;
    13.    
    14.     if(d1 > d2)
    15.         return n2;
    16.     return n1;
    17.  
    18. }
    19. int main()
    20. {
    21.     int n = find_least_sqr(6);
    22.     printf("%d\n", n);
    23.     return 0;
    24. }

    @langman: hì, tớ với bạn sai giống nhau ở bài post lần 1 trên

    à! Không của cậu + 0.5 nó vẫn chưa vượt qua số nguyên kia sorry!

  8. #8
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    náo, :P
    nhập 6 nó ra 4 đấy, ai bảo cậu nó ra 9, tôi nhìn bằng mắt cũng thấy nó ra 4
    cái cậu aydada này tung hỏa mù à ?

    chạy tay là chạy như nào ?????

    (int(sqrt(x)+0.5))*(int(sqrt(x)+0.5));

    thế int(sqrt(x)+0.5) của 6 lại bằng 3 à? bạn nên xem lại kiến thức cơ bản đi

    hix, mất căn bản trầm trọng oài :(
    Đã được chỉnh sửa lần cuối bởi aydada : 28-03-2010 lúc 10:57 AM.

  9. #9
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Trích dẫn Nguyên bản được gửi bởi aydada Xem bài viết
    hix, mất căn bản trầm trọng oài :(
    hj
    trêu aydada tí vui.
    cái mẹo + 0.5 để làm tròn này là tớ học được của cô giáo dạy đồ họa máy tính đấy. hay phết

    @all hướng ứng giờ trái đất a e tắt cầu giao đi thắp nến lên chát nào
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    anh langman có giáo trình đồ họa máy tính viết bằng C/C++ không send cho e với ạ.
    Em cũng muốn mày mò nhưng không tìm thấy cuốn nào hay hết >.<

Các đề tài tương tự

  1. Sửa máy tính, cài đặt windows, phần mềm tại nhà nhanh nhất, rẻ nhất, hiệu quả nhất …
    Gửi bởi hopluccc trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 08-07-2013, 02:07 PM
  2. Trả lời: 12
    Bài viết cuối: 25-10-2012, 02:48 AM
  3. Bài tập C++ NHập mảng một chiều gồm n phần tử kết thúc nhập khi nhập một chữ cái
    Gửi bởi thienthanoze trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 15
    Bài viết cuối: 09-07-2012, 10:10 PM
  4. Bài tập C++ Viết phương trình nhập vào 1 chuỗi số.Hãy nhập vào 1 số.Đếm xem có bao nhiêu chữ số bạn vừa nhập
    Gửi bởi namtuocdn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 16-10-2011, 10:39 AM
  5. Bài tập C++ Nhập mảng 1 chiều, nếu phần tử nhập trùng nhau thì bắt nhập lại
    Gửi bởi danielh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-07-2011, 03:35 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn