高中生程式解題系統
#include <stdio.h> #include <iostream> #include <string.h> using namespace std; int main(){ char c[1000000]; while(scanf("%s", &c) != EOF){ int n = 0, k = 0, t = 0; for (t = 0; t <= strlen(c); t++){ if (c[t] == 45) n++; else{ k = c[t] - '0'; for (int i = 0; i < n % 2; i++) printf("-"); printf("%d\n", k); break; } } } return 0; } |
學姐不行嗎 QQ
1) 題目說0<=N<=1000000, 0<=k<=9,所以你的陣列在最極端的狀況下開的可能不夠大。其實寫題目的時候陣列開的稍微大一點(像這題可以開個1000100)比較保險。
2) scanf("%s", c )
3) for( int t=0 ; t<strlen(c) ; t++ ) 記得陣列的第一格是0不是一,所以陣列的最後一格是 len-1不是 len
學姐不行嗎 QQ
1) 題目說0<=N<=1000000, 0<=k<=9,所以你的陣列在最極端的狀況下開的可能不夠大。其實寫題目的時候陣列開的稍微大一點(像這題可以開個1000100)比較保險。
2) scanf("%s", c )
3) for( int t=0 ; t<strlen(c) ; t++ ) 記得陣列的第一格是0不是一,所以陣列的最後一格是 len-1不是 len
感謝學姊
還是會 NA (score:66%) TLE (1s)Killed
int main(){
char c[1000100];
while(scanf("%s", &c) != EOF){
int n = 0, k = 0, t = 0;
for (t = 0; t <= strlen(c); t++){
if (c[t] == 45)
n++;
else{
k = c[t] - '0';
for (int i = 0; i < n % 2; i++)
printf("-");
printf("%d\n", k);
break;
}
}
}
return 0;
}
我會再試試看~
謝謝 指導, 我會再試試看~
謝謝 指導, 我會再試試看~
謝謝指導, 已AC!
謝謝指導, 已AC!
其實這題看清楚題目後
就會發現只要知道輸入字串的長度,就可以知道他有多少個"-"了喔XD
所以根本不用for迴圈跑就直接可以判斷是正數還是負數
當然-0的部分要稍微處理一下