first commit
This commit is contained in:
6
.vscode/settings.json
vendored
Normal file
6
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"iostream": "cpp",
|
||||
"*.tcc": "cpp"
|
||||
}
|
||||
}
|
52
2010-06-09/100.cpp
Normal file
52
2010-06-09/100.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
如果是奇數做某些事,是偶數就做其他事,有點無聊的題目
|
||||
1. i 的值是要用來跑迴圈的不能改變
|
||||
2. 題目並沒有說 start 會比 end 小
|
||||
*/
|
||||
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
int main() {
|
||||
int start = 0, end = 0, tmp = 1, max = 0, value = 0;
|
||||
int temp = 0;
|
||||
int change = 0;
|
||||
while(cin >> start >> end) {
|
||||
if (start > end) {
|
||||
temp = end;
|
||||
end = start;
|
||||
start = temp;
|
||||
|
||||
change = 1;
|
||||
}
|
||||
|
||||
for (int i = start; i <= end; i++) {
|
||||
value = i;
|
||||
while (value != 1) {
|
||||
if (value % 2 != 0){
|
||||
value = 3 * value + 1;
|
||||
tmp++;
|
||||
}
|
||||
else {
|
||||
value /= 2;
|
||||
tmp++;
|
||||
}
|
||||
}
|
||||
if(tmp > max)
|
||||
max = tmp;
|
||||
|
||||
tmp = 1;
|
||||
}
|
||||
|
||||
if (change == 1) {
|
||||
temp = end;
|
||||
end = start;
|
||||
start = temp;
|
||||
}
|
||||
cout << start << " " << end << " " << max<< endl;
|
||||
max = 0;
|
||||
change = 0;
|
||||
}
|
||||
}
|
30
2010-06-09/10012.cpp
Normal file
30
2010-06-09/10012.cpp
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
要將一堆圓圈塞進一個長方形裡,求最小長方形面積
|
||||
1. 圓該怎麼擺
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
using namespace std;
|
||||
int main() {
|
||||
int line = 0, n = 0;
|
||||
|
||||
while(cin >> line) {
|
||||
for (int i = 0; i < line; i++) {
|
||||
cin >> n;
|
||||
float num[n];
|
||||
for (int j = 0; j < n; j++) {
|
||||
cin >> num[j];
|
||||
}
|
||||
for (int j = 0; j < n; j++) {
|
||||
cout << num[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
cout<< sqrt(1.5*1.5 - 0.5*0.5);
|
||||
}
|
97
2010-06-09/10015.cpp
Normal file
97
2010-06-09/10015.cpp
Normal file
@ -0,0 +1,97 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
人圍成圈,用質數去繞圈,質數數完被點到的人會被殺掉,求最後倖存者
|
||||
1. TLE
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
//將前 3500 個質數都算出來
|
||||
int p[3502] = {0};
|
||||
int number = 4;
|
||||
int index = 3;
|
||||
|
||||
p[1] = 2;
|
||||
p[2] = 3;
|
||||
|
||||
while (p[3501] == 0) {
|
||||
for (int i = 2; i < number / 2 + 1; i++) {
|
||||
if(number % i == 0) {
|
||||
break;
|
||||
}
|
||||
if(i == number / 2) {
|
||||
p[index] = number;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
number++;
|
||||
}
|
||||
|
||||
|
||||
//輸入的部份
|
||||
int n = 0;
|
||||
int copy_n = 0;
|
||||
|
||||
while(cin >> n) {
|
||||
copy_n = n;
|
||||
|
||||
int point = 0; //用來看現在數到哪個人
|
||||
int counter = 0; //用來倒數質數的
|
||||
int num[n + 1]; //某人是否存活 1:活 0:死
|
||||
|
||||
//初始化為 1
|
||||
for (int k = 0; k <= n; k++) {
|
||||
num[k] = 1;
|
||||
}
|
||||
|
||||
if (n == 0)
|
||||
break;
|
||||
|
||||
while (n > 1) { // 存活人數 > 一人
|
||||
for (int i = 1; i < 3501; i++) {
|
||||
if (p[i] % n != 0) {
|
||||
counter = p[i] % n; //如果質數相對人數很大取餘數就好
|
||||
}
|
||||
else {
|
||||
counter = n;
|
||||
}
|
||||
|
||||
// cout << "質數 " << counter << endl;
|
||||
while (counter > 0) {
|
||||
if (point == copy_n) {
|
||||
point = 0;
|
||||
}
|
||||
if (num[point + 1] == 1) {
|
||||
counter--;
|
||||
point++;
|
||||
}
|
||||
else {
|
||||
point++;
|
||||
}
|
||||
|
||||
if (counter == 0) {
|
||||
num[point] = 0; //第 point 人被殺
|
||||
n = n - 1; //總人數少 1
|
||||
// cout << "人數 " << n << endl;
|
||||
}
|
||||
}
|
||||
// cout << "被殺 " << point << endl;
|
||||
// cout <<"---------------"<< endl;
|
||||
if (n == 1)
|
||||
break;
|
||||
}
|
||||
//輸出最後倖存者
|
||||
if (n == 1) {
|
||||
for (int i = 1; i <= copy_n; i++) {
|
||||
if (num[i] == 1)
|
||||
cout << i << endl;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
cout << endl;
|
||||
}
|
11
2010-06-09/10085.cpp
Normal file
11
2010-06-09/10085.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
3 * 3移動拼圖,要變成目標樣子
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main () {
|
||||
|
||||
}
|
37
2010-06-09/10579.cpp
Normal file
37
2010-06-09/10579.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
Fibonacci Numbers
|
||||
1. Fibonacci Numbers 要的很後面,只能另尋他路owo
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int big_add () {
|
||||
fib = n1 + n2;
|
||||
}
|
||||
int change (int (&n1)[1000]) {
|
||||
|
||||
}
|
||||
int main () {
|
||||
int n = 0;
|
||||
|
||||
while (cin >> n) {
|
||||
int n1[1000], n2[1000], temp[1000], fib[1000];
|
||||
|
||||
if (n == 1)
|
||||
fib[0] = 1;
|
||||
else if (n == 2)
|
||||
fib[0] = 1;
|
||||
else
|
||||
while (n > 2) {
|
||||
|
||||
cout << fib << endl;
|
||||
temp = n2;
|
||||
n2 = fib;
|
||||
n1 = n2;
|
||||
n--;
|
||||
}
|
||||
}
|
||||
}
|
50
2010-06-09/10664.cpp
Normal file
50
2010-06-09/10664.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
date:107/10/13
|
||||
author:Chen Yi Jing
|
||||
|
||||
給很多數字,要判斷這些數字是否能分成兩堆等大的數字
|
||||
1.沒有說一行幾個數字:StringStream 做字串的分割(空白切割)
|
||||
2.動態規劃 0 1 背包的問題:可以用0-1背包的思想来进行解决。
|
||||
先将n个数全部累加起来,总数为sum,这里和0-1背包的不同之处在于,这里的价值和重量是一样的,
|
||||
所以将一个包的容量设置为sum/2,然后你就采用0-1背包思路从n个物品中尽可能的选择数字,
|
||||
使得数字的和最接近sum/2,那么这个解就是最优解。
|
||||
*/
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
|
||||
using namespace std;
|
||||
int main() {
|
||||
int n = 0;
|
||||
cin >> n;
|
||||
|
||||
for (int i = 0; i < n; i++) {
|
||||
int temp = 0, index = 0;
|
||||
int weight[20] = {0};
|
||||
int sum = 0, str = 0;
|
||||
string input;
|
||||
|
||||
|
||||
getline(cin, input); //取得一行的輸入
|
||||
stringstream ss (input); //StringStream 做字串的分割(空白切割)
|
||||
while(ss >> str) {
|
||||
weight[index] = str;
|
||||
index++;
|
||||
}
|
||||
|
||||
for (int j = 0; j < index; j++) {
|
||||
sum += weight[j];
|
||||
}
|
||||
if (sum % 2 != 0) {
|
||||
cout << "NO" << endl;
|
||||
}
|
||||
else {
|
||||
cout << "YES" << endl;
|
||||
}
|
||||
cout << sum << endl;
|
||||
|
||||
//清空 ss
|
||||
ss.str("");
|
||||
ss.clear();
|
||||
}
|
||||
}
|
||||
|
39
2010-10-11/10107.cpp
Normal file
39
2010-10-11/10107.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
date:107/10/20
|
||||
author:Chen Yi Jing
|
||||
|
||||
算當下最新的中位數
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main() {
|
||||
int input = 0, index = 0;
|
||||
long long int num[10001];
|
||||
int middle = 0, temp = 0;
|
||||
|
||||
|
||||
while (cin >> input) {
|
||||
num[index] = input;
|
||||
index++;
|
||||
|
||||
//sort
|
||||
for (int i = index - 2; i >= 0; i--) {
|
||||
if (num[i + 1] < num[i]) {
|
||||
//swap
|
||||
temp = num[i + 1];
|
||||
num[i + 1] = num[i];
|
||||
num[i] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
//print midde number
|
||||
if(index % 2 == 0) { //even
|
||||
middle = (num[index / 2 - 1] + num[index / 2]) / 2;
|
||||
}
|
||||
else { //odd
|
||||
middle = num[index / 2];
|
||||
}
|
||||
|
||||
cout << middle << endl;
|
||||
}
|
||||
}
|
11
2010-10-11/10176.cpp
Normal file
11
2010-10-11/10176.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
/*
|
||||
date:107/10/20
|
||||
author:Chen Yi Jing
|
||||
|
||||
|
||||
*/
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
int main (){
|
||||
|
||||
}
|
223
2010-10-11/10415.cpp
Normal file
223
2010-10-11/10415.cpp
Normal file
@ -0,0 +1,223 @@
|
||||
/*
|
||||
date:107/10/20
|
||||
author:Chen Yi Jing
|
||||
|
||||
算手指按按鍵拿起來的次數,共十指
|
||||
*/
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
using namespace std;
|
||||
int main (){
|
||||
int n = 0;
|
||||
cin >> n;
|
||||
|
||||
string ss;
|
||||
getline(cin, ss); //do nothing
|
||||
|
||||
//case by case
|
||||
for (int i = 0; i < n; i++) {
|
||||
string s;
|
||||
int before[11] = {0};
|
||||
int after[11] = {0};
|
||||
int finger[11] = {0};
|
||||
getline(cin, s);
|
||||
// cin >> s;
|
||||
if(s[0] == 1){
|
||||
cout <<"qq";
|
||||
}
|
||||
|
||||
for (int j = 0; j < s.length(); j++) {
|
||||
//判斷指法
|
||||
switch(s[j]) {
|
||||
case 'c':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 1;
|
||||
break;
|
||||
case 'd':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'e':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'f':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'g':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'a':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'b':
|
||||
after[1] = 0;
|
||||
after[2] = 1;
|
||||
after[3] = 0;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'C':
|
||||
after[1] = 0;
|
||||
after[2] = 0;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'D':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 1;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'E':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 1;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'F':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 1;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'G':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 1;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'A':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 1;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
case 'B':
|
||||
after[1] = 1;
|
||||
after[2] = 1;
|
||||
after[3] = 0;
|
||||
after[4] = 0;
|
||||
after[5] = 0;
|
||||
after[6] = 0;
|
||||
after[7] = 0;
|
||||
after[8] = 0;
|
||||
after[9] = 0;
|
||||
after[10] = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//判斷是否要加按下去的次數,還有將 before 更新
|
||||
for (int k = 1; k < 11; k++) {
|
||||
if (before[k] == 0 && after[k] == 1) {
|
||||
finger[k]++;
|
||||
before[k] = 1;
|
||||
}
|
||||
else if (before[k] == 1 && after[k] == 0) {
|
||||
before[k] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int k = 1; k < 10; k++) {
|
||||
cout << finger[k] << " ";
|
||||
}
|
||||
cout << finger[10];
|
||||
cout << endl;
|
||||
}
|
||||
|
||||
}
|
38
README.md
Normal file
38
README.md
Normal file
@ -0,0 +1,38 @@
|
||||
# Created by https://www.gitignore.io/api/c++
|
||||
|
||||
### C++ ###
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Compiled Object files
|
||||
*.slo
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Fortran module files
|
||||
*.mod
|
||||
*.smod
|
||||
|
||||
# Compiled Static libraries
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
|
||||
|
||||
# End of https://www.gitignore.io/api/c++
|
Reference in New Issue
Block a user