注意: 總時間限制: 1000ms 記憶體限制: 65536kb
輸入二個正整數m 和 k,其中1 < m < 100000,1 < k <5 ,判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。
例如,輸入:
43833 3
滿足條件,輸出yes
如果輸入
39331 3
儘管有3個3,但不能被19整除,也不滿足條件,應輸出no
m 和 k 的值,空格間隔
滿足條件時輸出 yes,不滿足時輸出 no
143833 3
1yes
#include#include using namespace std;
int main()
else
return 0;
}
注意: 總時間限制: 1000ms 記憶體限制: 65536kb
輸入一串長度不超過500個符號的字串,輸出在串中出現第2多的英語字母(大小寫字母認為相同)和次數(如果串中有其它符號,則忽略不考慮)。如果有多個字母的次數都是第2多,則按串中字母出現的順序輸出第1個。
例 ab&dcaab&c9defgb
這裡,a 和 b都出現3次,c和d都出現2次,e、f 和 g 各出現1次,其中的符號&和9均忽略不考慮。因此,出現第2多的應該是 c 和 d,但是 d 開始出現的位置在 c 的前面,因此,輸出為
d+d:2
(假定在字串中,次數第2多的字母總存在)
乙個字串
大寫字母+小寫字母:個數
1ab&dcaab&c9defgb
1d+d:2
#include#include #include #include int n = 0;
using namespace std;
char* letter(char *str)
i++;
} return newstr;
}int k = 0;//出現的字母個數
struct alpha ;
alpha strout[500] = ;
int deal(char input)
} if (find == false)
return 0;
}int main() ;
cin.getline(str, 500);
int m = strlen(str);
char *newstr;
newstr = letter(str);
for (int i = 0; i < m; i++)
for (int i = 0; i < 501; i++)
}
alpha larggest = ;
alpha second = ;
for (int i = 0; i < k - 1; i++)
else if (strout[i].time > second.time&& strout[i].time < larggest.time)
} char temp = second.letter - 32;
cout << temp << '+' << second.letter << ':' << second.time;
return 0;
}
注意: 總時間限制: 1000ms 記憶體限制: 65536kb
兩個整數 a 和 b 運算後得到結果 c。表示為:a ? b = c,其中,?可能是加法 +,減法 -,乘法 *,整除 / 或 取餘 %。請根據輸入的 a,b,c 的值,確定運算子。如果某種運算成立,則輸出相應的運算子,如果任何運算都不成立,則輸出 error.
例如:輸入:
3,4,5
輸出:error
若輸入:
3,4,3
則輸出:
%a b和 c 的值在意行內輸入,以逗號間隔
五個運算子之一或 error
16,7,13
1+
#includeusing namespace std;
int main()
return 0;
}
注意: 總時間限制: 1000ms 記憶體限制: 65536kb
在乙個平面上,如果有兩個點(x,y),(a,b),如果說(x,y)支配了(a,b),這是指x>=a,y>=b;
用圖形來看就是(a,b)坐落在以(x,y)為右上角的乙個無限的區域內。
給定n個點的集合,一定存在若干個點,它們不會被集合中的任何一點所支配,這些點叫做極大值點。
程式設計找出所有的極大點,按照x座標由小到大,輸出極大點的座標。
本題規定:n不超過100,並且不考慮點的座標為負數的情況。
輸入包括兩行,第一行是正整數n,表示是點數,第二行包含n個點的座標,座標值都是整數,座標範圍從0到100,輸入資料中不存在座標相同的點。
按x軸座標最小到大的順序輸出所有極大點。
輸出格式為:(x1,y1),(x2,y2),...(xk,yk)
注意:輸出的每個點之間有","分隔,最後乙個點之後沒有",",少輸出和多輸出都會被判錯
125
1 2 2 2 3 1 2 3 1 4
1(1,4),(2,3),(3,1)
#includeusing namespace std;
struct point ;
int main()
if (max == true)
} k--;//因為之前最後一次多了乙個k++,所以這裡-回來
for (int i = 0; i < k + 1; i++)
else if (maxs[i].x == maxs[j].x&&maxs[i].y > maxs[j].y)
} }
for (int i = 0; i < k+1 ; i++)
return 0;
}
wa but with right output:
#include#include #include using namespace std;
typedef struct coord
;int main() ;
vectord(n);
for (int i = 0; i < 2*n; i++)
for (int i = 0; i < n; i++)
for (int i = 0; i < n; i++)
if (count==n-1)d[i].flag = 1;
} for (int i = 0; i < n - 1; i++)
} }for (int i = 0; i < n; i++) }
system("pause");
return 0;
}
注意: 總時間限制: 1000ms 記憶體限制: 65536kb
當你站在乙個迷宮裡的時候,往往會被錯綜複雜的道路弄得失去方向感,如果你能得到迷宮地圖,事情就會變得非常簡單。
假設你已經得到了乙個n*m的迷宮的圖紙,請你找出從起點到出口的最短路。
第一行是兩個整數n和m(1 <= n,m <= 100),表示迷宮的行數和列數。
接下來n行,每行乙個長為m的字串,表示整個迷宮的布局。字元'.'表示空地,'#'表示牆,'s'表示起點,'t'表示出口。
輸出從起點到出口最少需要走的步數。(你不能起出迷宮外)
參***:
#include #include using namespace std;
int m,n;//n行m列
char map[101][101];//地圖矩陣
int already[101][101];//已走地圖記憶
int min_count=0;
void cross(int u, int v, int i, int j)
t++;
if (v < m - 1 && map[u][v+1] != '#' && already[u][v+1]>t)//在迷宮內、右側非牆且此點沒有走過
if (u > 0 && map[u-1][v] != '#' && already[u-1][v]>t)
if (v > 0 && map[u][v-1] != '#' && already[u][v-1]>t)
if (u < n - 1 && map[u+1][v] != '#' && already[u+1][v]>t)
}int main()
if (map[i][j]=='t') }}
memset(already,1,sizeof(already));//按位元組為單位賦值:16843309
already[startx][starty]=0;
cross(startx,starty,endx,endy);
cout
}
Coursera C程式設計高階 第二週
已知乙個整數陣列x,其中的元素彼此都不相同。找出給定的陣列中是否有乙個元素滿足x i i的關係,陣列下標從0開始。舉例而言,如果x 則x 3 3,因此3就是答案。輸入第一行包含乙個整數n 0 n 100 表示陣列中元素的個數。第二行包含n個整數,依次表示陣列中的元素。輸出為乙個整數,即滿足x i i...
Coursera C程式設計高階 第三週作業
注意 總時間限制 1000ms 記憶體限制 65536kb 輸入乙個句子 一行 將句子中的每乙個單詞翻轉後輸出。只有一行,為乙個字串,不超過500個字元。單詞之間以空格隔開。所謂單詞指的是所有不包含空格的連續的字元。這道題請用cin.getline輸入一行後再逐個單詞遞迴處理。翻轉每乙個單詞後的字串...
C程式設計高階 期末考試
程式設計題 1 含k個3的數 簡單,但查到了一些東西 輸入二個正整數m 和 k,其中1 m 100000,1 k 5 判斷m 能否被19整除,且恰好含有k個3,如果滿足條件,則輸出yes,否則,輸出no。例如,輸入 43833 3 滿足條件,輸出yes 如果輸入 39331 3 儘管有3個3,但不能...