30/09/2018, 19:25

chương trình hiện ra màn hình các cách phân tích một số thành tổng lập phương của 2 số tự nhiên

bài này sao xuất ra màn hình lại bị lỗi vậy

void PT()
{

   int s;
 float i,j,x;

 x=1500;
 while(x<2000)
 {
   i=pow (x/2,1/3);
   j=pow(x/2,1/3);
   s=0;
	 s=pow(i,3)+pow(j,3);
	  x++;
  cout<<"tong cac so lap phuong la"<<s<<"="<<pow(i,3)<<"+"<<pow(j,3)<<"
";
 }

}

Nhuyngo Nhuyngo95 viết 21:29 ngày 30/09/2018

huy vo viết 21:40 ngày 30/09/2018

i j lúc nào cũng ra 1 kìa bạn.

Nhuyngo Nhuyngo95 viết 21:35 ngày 30/09/2018

i,j được tính theo i=pow (x/2,1/3);
j=pow(x/2,1/3);
mà sao ra 1 vậy

huy vo viết 21:37 ngày 30/09/2018

1/3 = 0, x/2 ^ 0 = 1

Quân viết 21:26 ngày 30/09/2018

1/3

bằng 1 là phải rồi phép tính sẽ được convert như sau:

i=pow(x/2,0)
j=pow(x/2,0)

thế thì chẳng phải là bằng 1 à, bạn phải ép kiểu biểu thức 1/3 về float nữa

Nhuyngo Nhuyngo95 viết 21:26 ngày 30/09/2018

nhưng mình muốn số i=750^(1/3) mà sao nó không ra ak:frowning:

Nhuyngo Nhuyngo95 viết 21:29 ngày 30/09/2018

nói vẫn bị lỗi không in ra được những số tứ 1500 đến 1716 ak
void PT()
{

	 float i,j;int x,y; 
	 for ( x=1500;x<2000;x++)
	 {
	   i=pow ( ((float) x)/2,((float) 1)/3);
	   j= pow ( ((float) x)/2,((float) 1)/3);
		float s =pow (((float) i),3)+pow (((float)j),3);
	  cout<<"tong cac so lap phuong la   "<< s <<"=" << pow (((float) i),3)<<"+"<<pow (((float) j),3)<<"\n";
	 }
}
Bài liên quan
0