PhamHongViEHG
Junior
mình viết bằng notepad ++ thụt ra thụt vô hợp lý rồi.. copy lên đây nó ko còn hợp lí nữacách trình bày code của bạn làm cho người đọc rối mắt. bạn viết code phải "thụt ra thụt vô" cho nó hợp lý.
mình viết bằng notepad ++ thụt ra thụt vô hợp lý rồi.. copy lên đây nó ko còn hợp lí nữacách trình bày code của bạn làm cho người đọc rối mắt. bạn viết code phải "thụt ra thụt vô" cho nó hợp lý.
mình viết bằng notepad ++ thụt ra thụt vô hợp lý rồi.. copy lên đây nó ko còn hợp lí nữa
Nào ai rảnh lại tiếp tục giúp đỡ C++ nhá
giải thích giúp e đoạn màu đỏ.... và đoạn tính gia thừa... sao lại là a nhỉ,cái đó e nghĩ là n chứ ta.
#include<iostream.h>
#include<conio.h>
#include<math.h>
long giaithua(int a) // Khai báo a ở đây
{
int gt=1;
if(a==0 || a==1) // Thì dùng a ở đây, khai báo gì thì dùng nấy
return 1;
for(int i=2;i<=a;i++)
gt=gt*i;
return gt;
}
void kiemtra(int n) //Khai báo n thì dùng n
{
int i=0;
while(giaithua(i)<=n) // Lặp đến khi giai thừa của i < n
{
if(giaithua(i)==n) // Nếu bằng thì in ra, ko thì báo ko tìm thấy
{
cout<<n<<"="<<i<<"!";
}
i++;
}
else
{cout<<"Khong co giai thua"<<endl;}
cout<<endl;
}
void main()
{
int n;
cout<<"\nNhap vao so can kiem tra ";
cin>>n;
kiemtra(n);
//getch();
}
đã sửatrêm form bạn dùng khoảng trắng(space) thay cho tab trên Notepad. nhìn cái code của bạn có muốn trả lời giúp bạn nhưng thấy cách trình bày vậy mình next luôn. các bạn progamer vào công ty mình phỏng vấn, chưa cần biết code pro tới cỡ nào nhìn cách trình bày rồi trả hồ sơ luôn
code này là tính giai thừa của số nhỏ hơn hoặc bằng số nhập vào mà. Nếu kết quà giai thừa >n thì thoát. rồi in ra màn hình.Nào ai rảnh lại tiếp tục giúp đỡ C++ nhá
giải thích giúp e đoạn màu đỏ.... và đoạn tính gia thừa... sao lại là a nhỉ,cái đó e nghĩ là n chứ ta.
Code:#include<iostream.h> #include<conio.h> #include<math.h> long giaithua(int a) { int gt=1 if(a==0 || a==1) return 1; for(int i=2;i<=a;i++) gt=gt*i; return gt; } //đoạn mình cần hướng dẫn void kiemtra(int n) { int i=0; while(giaithua(i)<=n) { if(giaithua(i)==n) { cout<<n<<"="<<i<<"!"; } i++; } else {cout<<"Khong co giai thua"<<endl;} cout<<endl; } //tới đây là được. void main() { int n; cout<<"\nNhap vao so can kiem tra "; cin>>n; kiemtra(n); //getch(); }
nó chạy đúng rồi... thì nhập 1 số nó ra giai thừa số đó... vd nhập số 24 thì nó ra là: 24=4!code này là tính giai thừa của số nhỏ hơn hoặc bằng số nhập vào mà. Nếu kết quà giai thừa >n thì thoát. rồi in ra màn hình.
mình chỉ bạn cách test nha.
trong soft C++ có phần debug.
bạn nhấn F7, F8 rồi bạn xem nó chạy như thế nào nha.
đúng rồi bạn.nó chạy đúng rồi... thì nhập 1 số nó ra giai thừa số đó... vd nhập số 24 thì nó ra là: 24=4!
nhập 25 thì nó ra là: 25 không có giai thừa nào phù hợp
vấn đề là mình hiểu phần code ý... bạn giải thích với dc ko
không phải mình không hiểu giai thừa... mình không hiẻu đoạn code này nèđúng rồi bạn.
hình như bạn chưa hiểu về giai thừa. để mình ví dụ nha.
3!=6(1x2X3)
4!=24(1x2x3x4)
5!= 120(1x2x3x4x5)
...
với code của bạn bạn nhập
24 nó ra là: 24=4! ( chuẩn)
25 ko có giai thừa.
nếu bạn nhập 125 thì nó ra là: 125=5!
Nó tóm lại cho dể nhiểu đoạn code của bạn là tính giai thừa ngược( giống như toán nhân và toán chia) code của bạn ở đây có thể hiểu là chia
void kiemtra(int n)
{
int i=0;
while(giaithua(i)<=n) // (tại sao giaithua(i)
<=n, giaithua(i) là gì)
{
if(giaithua(i)==n) // tại sao?
{
cout<<n<<"="<<i<<"!";
}
i++; // là gì?
}
else
{cout<<"Khong co giai thua"<<endl;}
cout<<endl;
}
ai nói giải thích giúp mình đoạn kiểm tra vớilong giaithua(int a)
{
int gt=1
if(a==0 || a==1)
return 1;
for(int i=2;i<=a;i++)
gt=gt*i;
return gt;
}
Cậu thấy long giaithua(int a) <-- nó là int a ko ? nên phía dưới phải là a, còn cậu khai báo long giaithua(int n) thì ở dưới là n, chỉ là tên gọi thôi mà.
void kiemtra(int n)
{
int i=0;
while(giaithua(i)<=n) // (tại sao giaithua(i)
<=n, giaithua(i) là gì)
{
if(giaithua(i)==n) // tại sao?
{
cout<<n<<"="<<i<<"!";
}
i++; // là gì?
}
else
{cout<<"Khong co giai thua"<<endl;}
cout<<endl;
}
ai nói giải thích giúp mình đoạn kiểm tra với
Code:void kiemtra(int n) { int i=0; while(giaithua(i)<=n) // (tại sao giaithua(i) <=n, giaithua(i) là gì) n là số bạn nhập vào để kiểm tra nó có giai thừa hay không giaithua(i) trong vòng lặp while để nó dùng hàm tính giai thừa từ 0 cho đến =n vì có i++ ví dụ: bạn cần kiểm tra xem số 5 có giai thừa hay ko ? giaithua(0) = 1 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 5 nên nó cho i++ tức là i + thêm 1 tức là 1 giaithua(1) = 1 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 5 nên nó cho i++ tức là i + thêm 1 tức là 2 giaithua(2) = 2 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 5 nên nó cho i++ tức là i + thêm 1 tức là 3 giaithua(3) = 6 nó so sánh thì nó thoát vòng lặp while rồi vì giaithua(i)<=n mà luc này vẫn chưa có thỏa mãn giaithua(i)=5 nên nó sẽ in ra "Khong co giai thua" ví dụ: bạn cần kiểm tra xem số 6 có giai thừa hay ko ? giaithua(0) = 1 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 6 nên nó cho i++ tức là i + thêm 1 tức là 1 giaithua(1) = 1 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 6 nên nó cho i++ tức là i + thêm 1 tức là 2 giaithua(2) = 2 nó so sánh xem có = với n hay không if(giaithua(i)==n) vì lúc này không bằng với 6 nên nó cho i++ tức là i + thêm 1 tức là 3 giaithua(3) = 6 nó so sánh thì nó dùng if(giaithua(i)==n) , đã bằng 6 --> nên nó sẽ in ra cout<<n<<"="<<i<<"!" tức là 3! { if(giaithua(i)==n) // tại sao? { cout<<n<<"="<<i<<"!"; } i++; // là gì? } else {cout<<"Khong co giai thua"<<endl;} cout<<endl; }
hây za.tại hạ mới biết vài dòng code thôi.đi spam cho zui đó màAnh Châu Tinh học lập trình hồi nào vậy ta?
Định giải thích nhưng thấy post này chi tiết nên thôiđọc ko hiểu chỗ nào cứ hỏi , mình ghi rồi đó
ai nói giải thích giúp mình đoạn kiểm tra với
Code:void kiemtra(int n) { int i=0; while(giaithua(i)<=n) // (tại sao giaithua(i) <=n, giaithua(i) là gì) { if(giaithua(i)==n) // tại sao? { cout<<n<<"="<<i<<"!"; } i++; // là gì? } else {cout<<"Khong co giai thua"<<endl;} cout<<endl; }
không phải mình hỏi cậu lệnh viết như nào.. mà ý hỏi thuật toán ý tại sao lại viết thế,xem sách biết chỗ nào mà mò sách to đùng nó ko đi trọng tâm chỗ cần hỏi
đăng lên congdongcviet cũng có nhưng chờ giải hơi lâu...
mấy bài trc có đăng lên đây mấy a giải khá rõ và nhanh.. bài này đoạn đó còn mơ hồ quá
có đâu ta. mình check rồi sao ko thấy mình dùng mạng 2g khá khổ lag tóavãi, mình viết cả đống chủ topic ko thèm đọc )