Hỏi & đáp lập trình

Mã:
     double pow (      double base,      double exponent );
long double pow ( long double base, long double exponent );
      float pow (       float base,       float exponent );
     double pow (      double base,         int exponent );
long double pow ( long double base,         int exponent );

:|
vậy là chỉ cần viết 1 hàm pow giống cái này rồi thêm vào kiểu int nữa là đc hã bạn.cũng hiểu sơ sơ rồi mà chưa rõ lắm.chắc phải học vài năm nữa wa'.ah bạn có thể nói thuật toán ra luon ko?
 
Đại loại như thế này, nhưng int là số nhỏ nên thực hiện cái pow này cũng bị giới hạn (0 → +65535)
Mã:
int power(int val, int pow)
{       int ret_val = 1;
        int i;

        for(i = 0; i < pow; i++)
                ret_val *= val;

        return(ret_val);
}
 
cho mình hỏi : làm sao để mình biết đc khi viết java thì sử dụng method nào, ý mình là làm sao để biết hết các method nếu method đó mình chưa gặp
 
bài tập : in ra màn hình 100 hợp số



public class bai5 {
public static void main(String[] args) {
int k, n, dem;
for (k = 1; k <= 100; k++) {
dem = 0;// dat gia tri cua bien dem = 0 ung voi gia tri cua k
for (n = 2; n <= k; n++) {
if (k % n == 0)//neu so du khi chia k cho n = 0
{
dem++;// thi bien dem dc cong them 1 don vi
}

}
if (dem > 1) {
System.out.println("hop so la " + k);

}
}
}
}

các bạn giải thích dùm mình cái biến " dem " . Thanks
 
nhưng tai sao các số khác lại đúng.vd như 4^2 vẫn ra 16.còn mấy số chia hết cho 5 thì kq sai.nếu để kiểu int thì phải +1 nữa mới đúng kq.

Đây là 1 giới hạn của máy tính hiện nay trong việc lưu trữ số thực, 1 số ví dụ 5.0 sẽ ko được lưu là 5.0 mà nó có hệ lưu riêng, và cách tính sẽ ~4.99999, vì vậy khi ép kiểu sẽ dễ bị sai.
Vấn đề này khi bạn học lên cao, học về kiến trúc máy tính và đi sâu hơn vào NNLT thì sẽ hiểu. Mình cũng chỉ hiểu chứ giải thích cũng phải tra mệt nghỉ :))
 
các bạn giải thích dùm mình cái biến " dem " . Thanks

dem = đếm
biến này sẽ tính lưu giá trị của số các số đã được kiểm tra là hợp số trong vòng lặp for kia
 
Mình mới bắt đầu học C# trên nền console, gặp mấy bài này hok hiểu, mấy bạn giúp dùm mình với.
_Bài 1: nhập vào năm dương lịch, xuất ra năm âm lịch. Bài này mình hôk hiểu phần Can với Chi là gì (10% với 12% là sao?) :D. Đề yêu cầu dùng switch.
_Bài 2: nhập vào 1 số, kiểm tra nó có phải là số nguyên tố hay ko, rồi tìm và xuất ra danh sách các số nguyên tố nhỏ hơn số đó (số nguyên tố là sao? :">). Đề yêu cầu dùng vòng lặp for.

Mình mới học nên có gì chỉ giáo thêm. Thx nhiều :D
 
1. thì có tất cả 10 can và 12 chi nên mới %10 và %12 (giáp ất bính đinh mậu kỉ canh tân nhâm quý - tí sửu dần mão...)
2. số nguyên tố là số mà chỉ có 2 ước số là 1 và chính nó
 
sẵn tiện mấy bạn coi dùm mình bài toán này với.Phân tích các số nguyên dương ra 1 số Nto.vd 6=2x3.
mình chỉ làm đc như vầy.làm sao in ra đc 2x3 vậy.ah` thêm nữa trong dev-c++ có hàm nào xóa số ko.vd dãy số có 2 số giống nhau mình muốn in ra 1 số 1 lần thôi ko muốn nó trùng.
#include <stdio.h>
#include <conio.h>

main(){
int n;
printf("Nhap so nguyen duong: ");scanf("%d",&n);
while (n!=1){
for(int i=2;i<=n;i++)
if(n%i==0) {printf("%d ",i);
n=n/i;
break;
}}

getch();

}
 
Mã:
if(n%i==0)...
thay if bằng while
 
mình muốn in ra kq là có dấu x.vd 6=2x3.để vậy nó ghi có 2 3 ah`
thì sửa lại đoạn code này đi
Mã:
for(int i=2;i<=n;i++)
if(n%i==0) {printf("%d ",i);
          n=n/i;
          break;
          }}
sửa lại thành
Mã:
string str = "";
for(int i=2;i<=n;i++)
while(n%i==0) {
          if (s == "") str += "" + i;
          else str  += " x " + i;                       
          n=n/i;
          //break;
          }}
printf(str);

lâu lâu không dùng c này chả biết có viết sai chỗ nào không :"> :'>
p/s: code cứ sát sàn sạt nhau thế này làm người khác khó đọc code quá :(
space ra cho dễ đọc đi
 
1. thì có tất cả 10 can và 12 chi nên mới %10 và %12 (giáp ất bính đinh mậu kỉ canh tân nhâm quý - tí sửu dần mão...)
2. số nguyên tố là số mà chỉ có 2 ước số là 1 và chính nó

Anh cho em xin công thức cụ thể để biết năm dương lịch mình nhập vào có can gì và chi gì với :D
Còn bài số nguyên tố thì em phải xét đk như thế nào? nếu em chỉ xét đk chia hết cho 1 và chính nó thì số nào cũng là số nguyên tố cả T_T
 
code thì tìm ở trên mạng ý, tớ có làm mấy cái này đâu mà biết :-??
những số nguyên tố là những số kiểu như 2 3 5 7 9 11 13 17 19...
chứ 12 đâu phải số nguyên tố: 12=2*2*3
thuật toán xem xét số nguyên tố có thể xem code bài toán của bạn langtu ngay ở trên: phân tích 1 số ra tích các thừa số nguyên tố, nếu chỉ tìm thấy 1 ước là chính nó thì kết luận số nguyên tố (vì bài này chỉ xét i chạy từ 2 đến n nên loại 1 rồi :>)
 
hàm string là gì vậy.baj có thể nói rõ dùm đc ko.ah` thêm nữa làm sao để biết đc các hàm đc hỗ trợ trong C vậy
 
PHP:
for(int i=2;i<=n;i++)
while(n%i==0) {
          if (n!=1) printf("%d x ",i);
          else printf("%d",i);
          n=n/i;
          //break;
          }}
à quên, hình như bạn chưa học string :">
cứ từ từ học rồi sẽ thấy mấy cái hay của nó :'>
string là 1 kiểu biến, giống kiểu int, float, char,... mà bạn đã biết ý
 
Chỉnh sửa cuối:
Còn bài số nguyên tố thì em phải xét đk như thế nào? nếu em chỉ xét đk chia hết cho 1 và chính nó thì số nào cũng là số nguyên tố cả T_T

Số nguyên tố là số chỉ chia hết cho 1 và chính nó trừ số 1 ra.vd 2 3 5 7 11...
còn mấy số kia ko phải số nguyên tố vd 4 6 vì chia hết cho 2...

---------- Post added at 13:20 ---------- Previous post was at 13:15 ----------

hỏi thêm làm sao để xóa các số trùng trong chuỗi số vậy.có hàm nào để xóa ko hay phải sử dụng thuật toán.có lẽ dồn các số bị trùng về phía sau rồi sao đó xóa nó hã.

---------- Post added at 14:45 ---------- Previous post was at 13:20 ----------

PHP:
for(int i=2;i<=n;i++)
while(n%i==0) {
          if (n!=1) printf("%d x ",i);
          else printf("%d",i);
          n=n/i;
          //break;
          }}

nếu để như thế thì nó sẽ in ra có dẫu x phía sau nữa.vd n=12.nó sẽ in ra 2x2x3x
 
tức là gần chuẩn rồi hả :-?
sửa lại phát cuối là được: đổi dòng if với dòng n=n/i; cho nhau là được (n=n/i lên trên if) :>
vì máy không cài dev-c nên không test được :">
 
cái vấn đề là hiển thị kq.kq thì đúng rồi nhưng nó lại hiển thị có dấu x phía sau nữa.vd nhập 6 nó hiển thị 2x3x.thấy khó coi wa' mình muốn nó hiển thị 2x3 thôi.
 
Back
Top