2011-11-24 243 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; 
}