#6687: 有沒有更快解法


zjin1126 (Linuxer)

學校 : 不指定學校
編號 : 25286
來源 : [119.14.68.19]
最後登入時間 :
2020-03-15 20:52:16
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [220.142.1.22] | 發表日期 : 2012-06-14 00:32

#include <iostream>
using namespace std;

int main (int argc, char *argv[])
{
string s;
while (getline(cin, s)) {
int x = 0;
for (int i = 0; i < s.length(); i++) {
int k = 0;
while ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) {
k++;
i++;
}
if (k) {
x++;
}
}
cout << x << endl;
}
return 0;
}

 
#6891: Re:有沒有更快解法


BTcom (Sloth)

學校 : 國立屏東大學
編號 : 26486
來源 : [111.242.146.229]
最後登入時間 :
2015-09-07 20:00:02
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [36.228.0.97] | 發表日期 : 2012-08-09 18:18

你可以利用緩衝器和輸入的關係
就比如是...
char txt[12];
int number =0;
while(scanf("%s",txt))
{
number++;
printf("%d",number);
}
//不過這只是範例,可別直接貼喔XD"

一開始輸入資料並非直接存入txt變數裡,而是在緩衝區(亦稱快取記憶體)
scanf會根據字元進行判斷且取出那些符合的字元存取,如果遇到空白/換行鍵就停止..
兩者間特性加起來,就能寫出很簡短的程式XD"

這只能參考罷了XD"

看你(妳)要怎麼寫了XD~~加油吧


 
ZeroJudge Forum