標題:
[【學科】]
【數學】問題
[打印本頁]
作者:
46733194
時間:
2016-9-1 14:25
標題:
【數學】問題
有一個集合,集合的元素是符合下列性質:
-元素都不同,且為小於100的正整數
-任意兩數的和都不同
那麼這集合中的元素總和,最大可以是多少?
我一開始用了等差的方式來暴力解,總覺得用程式解能更快
請問一下用程式碼要怎麼解出答案?
還有,目前沒這題目的正確解答
作者:
39475494
時間:
2016-9-1 16:01
void clearBoolMatrix(bool *a, int size)
{
int i;
for (i = 0; i < size; i++)
{
a[i] = false;
}
}
int main(int argc, char *argv[])
{
bool a[101];
bool sum[200];
int index_a;
int i, j;
bool result;
index_a = 1;
clearBoolMatrix(a, 101);
clearBoolMatrix(sum, 200);
for (i = 1; i < 100; i++)
{
result = true;
for (j = 1; j < i; j++)
{
if (a[j])
{
int s = j + i;
if (sum[s])
{
result = false;
break;
}
}
}
if (result)
{
for (j = 1; j < i; j++)
{
if (a[j])
{
int s = j + i;
sum[s] = true;
}
}
a[i] = true;
printf(" -- %d\n", i);
}
}
system("pause");
return 0;
}
作者:
39475494
時間:
2016-9-1 16:05
本帖最後由 39475494 於 2016-9-1 16:09 編輯
int index_a 沒用上,可以拿掉
如果用 struct 和 bit 去寫,配上 & | 判斷,可以更酷
-- 1
-- 2
-- 3
-- 5
-- 8
-- 13
-- 21
-- 30
-- 39
-- 53
-- 74
-- 95
請按任意鍵繼續 . . .
作者:
39475494
時間:
2016-9-1 16:25
元素總和呀
我以為是元素數量...
那可能要從最大往回找了 ?
作者:
39475494
時間:
2016-9-1 16:33
void clearBoolMatrix(bool *a, int size)
{
int i;
for (i = 0; i < size; i++)
{
a[i] = false;
}
}
int main(int argc, char *argv[])
{
bool a[100];
bool sum[200];
int i, j;
bool result;
clearBoolMatrix(a, 100);
clearBoolMatrix(sum, 200);
for (i = 99; i > 0; i--)
{
result = true;
for (j = i + 1; j < 100; j++)
{
if (a[j])
{
int s = j + i;
if (sum[s])
{
result = false;
break;
}
}
}
if (result)
{
for (j = i + 1; j < 100; j++)
{
if (a[j])
{
int s = j + i;
sum[s] = true;
}
}
a[i] = true;
printf(" -- %d\n", i);
}
}
system("pause");
return 0;
}
-------------------
-- 99
-- 98
-- 97
-- 95
-- 92
-- 87
-- 79
-- 70
-- 61
-- 47
-- 26
-- 5
請按任意鍵繼續 . . .
作者:
46733194
時間:
2016-9-4 15:24
請問一下冰語大大
這是用java寫的嗎?
怎麼構想出用boolean來寫呀?!
作者:
39475494
時間:
2016-9-5 11:29
這是 C 語言呀
java 的話 bool 會寫 boolean
java 的陣列宣告是 boolean[] xxxx
其他像是 if , for 其實都通用 , c 是一種很基本的語言了
至於想到用 boolean
這功能是對應,某個數字,取或不取
當然就有兩個方式可以用,一種是像這樣 i = 1~n -> true or false
n 個數字,每個數字去設 true or false
另一種就是true -> a, b, c, d ....
true 列表,裡面可以存數字,在裡面的是 true ,不在裡面就是 false
java 的話,你也可以用 list 寫
方法很多
歡迎光臨 Discuz! Board (http://bbs.61.com.tw/)
Powered by Discuz! 7.2