使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。sum(int n)计算所有n的因子之和(不包括1和自身)。
注意:不能修改程序的其他部分,只能补充sum()函数。
1 #include< iostream.h >
2 int sum(int n)
3 {
4
5 }
6 void main()
7 {
8 cout< < sum(10)< < end1;
9 cout< < sum(200)< < end1;
10 cout< < sum(400)< < end1;
11 return;
12 }
【正确答案】1 int all=0;
2 for(int i=2;i< n;i++)
3 {
4 if( n%i== 0)
5 {
6 all+=i;
7 }
8 }
9 return all;
【答案解析】函数sum(int n)主要功能是实现计算所有n的因子之和(不包括1和自身),函数中定义变量all保存最终求和结果,可利用循环方式查找n的因子,根据题目要求循环变量从2开始至n-1。
(1)数n的因子是指为整除n等于0的所有自然数的集合。
(2)为了实现计算所有n的因子之和且不包含1和自身,函数中定义一个变量all用来保存求和结果,并为最终结果在函数结束时返回;
(3)在循环中逐个寻找n的因子,为了在计算中排除掉1和n本身,因此循环变量i的变化范围为从2到n-1。
(4)如果n%i==0,说明i是n的因子,因此将i加到all上。