| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么这个代码把int f[30]放在main()里定义就RE了?癫狂....这个是AC的代码:
#include<iostream>
using namespace std;
int f[30];
int main(){
int num, i, j, k, a, b, c;
while(scanf("%d", &num) != EOF){
int n = 0;
for(i = 1; i * i <= num; i ++)
if(num % i == 0){
f[n ++] = i;
f[n ++] = num / i;
}
int ans = 999999999;
for(i = 0; i < n; i ++)
for(j = 0; j < n; j ++){
if(num % (f[i]*f[j])) continue;
for(k = 0; k < n; k ++){
if(f[i]*f[j]*f[k] != num) continue;
if(f[i]*f[j]+f[j]*f[k]+f[k]*f[i] >= ans) continue;
ans = f[i]*f[j]+f[j]*f[k]+f[k]*f[i];
a = f[i]; b = f[j]; c = f[k];
}
}
printf("%d %d %d\n", a, b, c);
}
return 0;
}
这个是RE的代码(就int f[30]位置不一样啊0.0|||)
#include<iostream>
using namespace std;
int main(){
int num, f[30], i, j, k, a, b, c;
while(scanf("%d", &num) != EOF){
int n = 0;
for(i = 1; i * i <= num; i ++)
if(num % i == 0){
f[n ++] = i;
f[n ++] = num / i;
}
int ans = 999999999;
for(i = 0; i < n; i ++)
for(j = 0; j < n; j ++){
if(num % (f[i]*f[j])) continue;
for(k = 0; k < n; k ++){
if(f[i]*f[j]*f[k] != num) continue;
if(f[i]*f[j]+f[j]*f[k]+f[k]*f[i] >= ans) continue;
ans = f[i]*f[j]+f[j]*f[k]+f[k]*f[i];
a = f[i]; b = f[j]; c = f[k];
}
}
printf("%d %d %d\n", a, b, c);
}
return 0;
}
哪位师兄师姐能给点提示?
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator