问题描述
我正在尝试解决来自在线评委 Hacker Earth 的 Charged Up Array 问题。
https://www.hackerearth.com/practice/data-structures/arrays/1-d/practice-problems/algorithm/charged-up-array-f35a5e23/
我想出了解决方案并为该问题编写了几乎相同的两种不同代码
第一个是:
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int T,n,i;
long long int subset_Containg_Ai,x,sum;
scanf("%d",&T);
while(T--)
{
sum = 0;
scanf("%d",&n);
//subset_Containg_Ai = (long long int)pow(2,(n-1));
//printf("Subset = %d\n",subset_Containg_Ai);
for(i=0; i<n; i++)
{
scanf("%lld",&x);
if(x>= pow(2,(n-1)))
{
sum = (sum + x ) % 1000000007;
}
}
printf("%lld\n",sum);
}
return 0;
}
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int T,&n);
subset_Containg_Ai = (long long int)pow(2,&x);
if(x>=subset_Containg_Ai)
{
sum = (sum + x ) % 1000000007;
}
}
printf("%lld\n",sum);
}
return 0;
}
在第二个代码中,我使用了一个额外的变量“subset_Containg_Ai”,并使用它与变量“x”进行比较,而不是每次都调用函数 pow。我认为这会提高代码的效率。相反,这第二个代码被法官显示为“错误答案”!谁能告诉我这里发生了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)