2011-11-24 238 views
-3

可能重複尋找除數:
Project Euler Problem 12 - C++從三角形的序列

三角形號的序列是通過將自然數生成。因此,第七 三角形數將是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28。

前十個方面將是:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... 

讓我們列出的因素前七個三角號:

1: 1 

3: 1,3 

6: 1,2,3,6 

10: 1,2,5,10 

15: 1,3,5,15 

21: 1,3,7,21 

28: 1,2,4,7,14,28 

我們可以看到,28是第一個三角形人數已超過五個除數。 第一個三角形數字的值超過一百個因數是多少?

+3

只是好奇,是編程作業還是數學作業? – Zohaib

+0

其編程任務.. –

+0

尚未開始..我不知道如何開始... –

回答

0

您只複製了問題描述!你遇到什麼問題?你必須說明。

問題提出「第一個三角形數字有一百多個除數是多少?」簡單地遍歷三角形數字,找出每個數字有多少個因子。當你找到一個有100多個因素的人時,你就完成了。

for each whole number 'n' from 1 -> +INF 
    let tn = triangleNumber(n); 
    let nf = numFactors(tn); 
    if (nf > 100) 
     print tn " has " nf " factors.\n"; 
     return; 
+0

我不知道如何啓動它..我不確定使用'for循環'或'while..do循環'... –

+0

@MahadevanBlackyD,骯髒的小祕密,其實並不重要當你知道你想要迭代的範圍,並且當你更加不確定需要達到最終條件的迭代次數時,我想循環更爲常見。那麼就有做...而這是一個獨立的案例。它們都只是一堆條件跳轉的語法糖。 –

0

首先嚐試自己做。如果你無法得到你的答案,那麼理解這個代碼。試着理解這個問題,然後試着自己去實踐它。首先,你必須檢查,直到你的除數超過100,所以會有一個while循環。在此期間,你必須創建三角形序列,即連續數字的總和(1 + 2 + 3 + 4 + 5 + 6 + 7) 。然後使用計數器並將其增加以找出總和的除數。

#include <iostream> 
#include <stdlib.h> 

using namespace std; 

int main(){ 
int div=0,sum=0,num,i=1,chk=0,a; 
cout<<"enter the number of divisors"<<endl; 
cin>>a; 
while(div<=a) 
{div=0;         
sum=sum+i; 
for(int j=1;j<=sum;j++) 
{if(sum%j==0) 
div++; 
} 
chk++; 
i++; 
} 
cout<<"Value of first triangle number value is "<<sum<<endl; 
cout<<"Value of triangle number is "<<chk<<endl; 
system("PAUSE"); 
return 0; 
}