#10158: 第 1 測資點 答案不正確


nike00811 (nike)

學校 : 國立中興大學
編號 : 47947
來源 : [115.82.13.83]
最後登入時間 :
2020-02-15 23:45:56
d085. 根號運算 -- 弱者 | From: [114.37.199.210] | 發表日期 : 2015-08-19 13:24

#include<iostream>

 

int main()

{

int n ;

while( std::cin >> n )

{

if( n == 0 )

{

std::cout << "0\n" ;

continue ;

}

int arr[10000] ;

int a = 0 , j = 0 , x = 1 , y = 1 ;

if( n < 0 )

{

a = 1 ;

n *= -1 ;

}

for(int i = 2 ; i <= n ; i++)

while( n % i == 0 )

{

arr[j] = i ;

n /= i ;

j++ ;

}

for(int i = 0 ; i < j ; i++)

{

if( arr[i] == arr[ i + 1 ] )

{

x *= arr[i] ;

i++ ;

}

else

y *= arr[i] ;

}

if( x == 1 && y == 1 )

std::cout << "1" ;

else if( x == 1 && y > 1 )

std::cout << "_/" << y ;

else if( x > 1 && y == 1 )

std::cout << x ;

else if( x > 1 && y > 1 )

std::cout << x << "_/" << y ;

if( a == 1 )

std::cout << "i\n" ;

else

std::cout << "\n" ;

}

 

return 0 ;

 

}

第 1 測資點(100%): WA (line:183) 
答案不正確 

您的答案為: 888i
正確答案為: 24_/37i

我自己輸入-21312

輸出是24_/37i

交上去就變成888i

who can tell me why ?

 
#10160: Re:第 1 測資點 答案不正確


kkmomo (kkmomo)

學校 : 不指定學校
編號 : 29247
來源 : [223.137.94.20]
最後登入時間 :
2024-06-28 12:05:12
d085. 根號運算 -- 弱者 | From: [118.163.30.15] | 發表日期 : 2015-08-19 17:13

 

for(int i = 0 ; i < j ; i++)

{

if( arr[i] == arr[ i + 1 ] )

 

您的答案為: 888i
正確答案為: 24_/37i

 

範圍要 i + 1 < j

888 = 24 * 37
推斷是超出範圍 i+1==j,讀到前一行測資
 
ZeroJudge Forum