有哪位好心人可以幫我看看哪裡錯了?
下面是我的程式碼
#include <iostream>
using namespace std;
int main(){
int i, j, n, x, A[401], T[20], add, all;
while(1){
cin >> n;
if(n==0)
break;
all=0; x=0;
for(i=0; i<n; i++){
cin >> T[i];
all = T[i] + all;
}
for(i=1; i<=all; i++)
A[i] = 1;
for(i=0; i<n; i++){
add = T[i];
A[add]=0;
for(j=i+1; j<n; j++){
add = add + T[j];
A[add]=0;
}
}
for(i=1; i<=all; i++){
if(A[i]==0)
x++;
}
if(!cin.eof()){
if(all==x)
cout << "YES" << endl;
else cout << "NO" << endl;
}
}
return 0;
}
有哪位好心人可以幫我看看哪裡錯了?
下面是我的程式碼
#include <iostream>
using namespace std;
int main(){
int i, j, n, x, A[401], T[20], add, all;
while(1){
cin >> n;
if(n==0)
break;
all=0; x=0;
for(i=0; i<n; i++){
cin >> T[i];
all = T[i] + all;
}
for(i=1; i<=all; i++)
A[i] = 1;
for(i=0; i<n; i++){
add = T[i];
A[add]=0;
for(j=i+1; j<n; j++){
add = add + T[j];
A[add]=0;
}
}
for(i=1; i<=all; i++){
if(A[i]==0)
x++;
}
if(!cin.eof()){
if(all==x)
cout << "YES" << endl;
else cout << "NO" << endl;
}
}
return 0;
}
(2). 總刻度數不等於K,這裡的刻度數定義為尺上刻痕所分隔的片段個數,例如上圖的尺一共有1, 1, 4, 4, 3共5個刻度。一把10公分的尺,如果有10個刻度,每個刻度長度都是1,那就不算是「節約」刻度的尺了。
這個有考慮到嗎? 我猜的 :P
有哪位好心人可以幫我看看哪裡錯了?
下面是我的程式碼
#include <iostream>
using namespace std;
int main(){
int i, j, n, x, A[401], T[20], add, all;
while(1){
cin >> n;
if(n==0)
break;
all=0; x=0;
for(i=0; i<n; i++){
cin >> T[i];
all = T[i] + all;
}
for(i=1; i<=all; i++)
A[i] = 1;
for(i=0; i<n; i++){
add = T[i];
A[add]=0;
for(j=i+1; j<n; j++){
add = add + T[j];
A[add]=0;
}
}
for(i=1; i<=all; i++){
if(A[i]==0)
x++;
}
if(!cin.eof()){
if(all==x)
cout << "YES" << endl;
else cout << "NO" << endl;
}
}
return 0;
}
(2). 總刻度數不等於K,這裡的刻度數定義為尺上刻痕所分隔的片段個數,例如上圖的尺一共有1, 1, 4, 4, 3共5個刻度。一把10公分的尺,如果有10個刻度,每個刻度長度都是1,那就不算是「節約」刻度的尺了。這個有考慮到嗎? 我猜的 :P
再次感謝Mr.(or Ms.)禾斗禾斗