Re: [請益] Amazon online test已刪文
: 1. 給一個int array, 再給一個S, 請利用array 內的東西組成S, 如果組不出來
: 回傳-1
: EX1: {1,3,5}, S= 11
: A: 3; --> 3 = 5+5+1
: EX2: {5, 5, 5, 5, 5, 5}, S=11
: A: -1;
: int mincoins(int a[], int N, int S)
: {
: // N is length of a[]
: }
---------------------------------------------
int mincoins(int a[], int N, int S);
int main(int argc, const char * argv[])
{
int n = 3;
int a[3] = {5, 3, 1};
int s = 13;
int answer = mincoins(a, n, s);
if (answer == -1)
{
printf("not found");
}
else
{
printf("found it:%d",answer);
}
return 0;
}
int mincoins(int a[], int N, int S)
{
for (int i = 0; i < N; i++)
{
int t = a[i];
int r = S - t;
if (r == 0)
{
return t;
}
else if (r > 0)
{
if (mincoins(a, N, r) > 0)
{
return t;
}
}
}
return -1;
}
-----------------------------------------------
: 2. 取 int 的 1's 補數
: EX1: 50 -> 110010
: A: 13 -> 001101
: EX2: 100 -> 1100100
: 27 -> 0011011
: int complement (int n)
: {
: }
-----------------------------------------------
int complement (int n);
int main(int argc, const char * argv[])
{
int input = 50;
int output = complement(input);
printf("Answer:%d",output);
return 0;
}
int complement (int n)
{
int t = 1;
while (t < n)
{
t = t * 2;
}
return t - n - 1;
}
-----------------------------------------------
跪求第一題最佳化...用了很差的方法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.94.196
推
03/24 23:44, , 1F
03/24 23:44, 1F
推
03/24 23:45, , 2F
03/24 23:45, 2F
推
03/25 00:09, , 3F
03/25 00:09, 3F
→
03/25 00:10, , 4F
03/25 00:10, 4F
推
03/25 09:55, , 5F
03/25 09:55, 5F
→
03/25 13:02, , 6F
03/25 13:02, 6F
→
03/25 13:22, , 7F
03/25 13:22, 7F
→
03/25 13:29, , 8F
03/25 13:29, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):