#5184: 為甚麼錯???


jimmy84711 (派大星)


#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a,n,x;
long long int s=1;
while(scanf("%d %d",&a,&n)!=EOF)
{
for(x=1;x<=n;x++)
{
   s=s*a;             
                
                 }
printf("%lld",s);
}
  system("pause");
  return 0;
}
#5207: Re:為甚麼錯???


CSE911527 (大學回來打C語言 想哭)


#include<iostream>
#include<math.h>
using namespace std;
int main(){
   long long int sum,a,n;
    while(cin>>a>>n)
    {
            sum=pow(a,n);
            cout<<sum<<endl;
            }
            return 0;
            }       
我只打這樣就ACㄌ
#6282: Re:為甚麼錯???


jorge13jorge13 (其實kira95137很厲害)


那為什麼這兩種就算錯? 
#include<iostream>
#include<cmath>
using namespace std;
double a,n;
int main()
{
    while(cin>>a>>n)
    {       
        cout<<pow(a,n)<<endl;
    }
    return 0;
}

第二種還會RE

 

#include<iostream>
using namespace std;
long long int a,n,sum;
int main()
{
    while(cin>>a>>n)
    {
        sum=1;
        for(int k=1;k<=n;k++)
            sum*=a;
        cout<<sum<<endl;
    }
    return 0;
}

 


#9646: Re:為甚麼錯???


pong013 (彭則詠)


#include
#include
int main(void)
{
int a,n,x;
long long int s=1;
while(scanf("%d %d",&a,&n)!=EOF)
{
for(x=1;x<=n;x++)
{
   s=s*a;             
                
                 }
printf("%lld",s);
}
  system("pause");
  return 0;
}

 

第二個測資跟-1的-1次方有關(個人推測啦@@)

 

(-1)^(-1)=1/((-1)^1)=-1

(-1)^(-2)=1/((-1)^2)=1

(-1)^(-3)=1/((-1)^3)=-1

(-1)^(-4)=1/((-1)^4)=1

......

可以發現(-1)^(正或負奇數字方)=-1

反之得出(-1)^(正或負偶數字方)=1

 

所以只要再多加一個判斷a^b

a是否為-1 

b是奇數還是偶數,(奇數,則答案為-1) (偶數,則答案為1)

 

這是小弟的看法 ,如有錯誤請提出,謝謝~~