编程求100以内能被7整除的自然数之和 5
2个回答
展开全部
不用编程,可以手工计算的。
15*7>100>14*7
结果就是(1+2+.....+14)*7
也就是[(1+14)*14/2]*7=15*7*7=735。
编程时可以考虑使用这种思路,速度快的。以C#编程。
public int getNum(int num,int last)
{
int temp =0;
for(int i = 1 ;i<=last;i++)
{
if(i%num==0)
temp+=i;
}
return temp;
}
显然这样的速度是较慢的,有人可能会发现如果整除时,每隔num个就会整除一下!那么这样写也是无可厚非了:
public int getNum(int num,int last)
{
int temp =0;
for(int i = 0 ;i<=last;i+=num)
{
temp+=i;
}
return temp;
}
先找出第一个能整除7的数,虽然0在这里不合题意,但反正0加上也不多,也可以得出正确的结果的。不过速度要比上一个快的多。那么这样写也是无可厚非的:
public int getNum(int num,int last)
{
int temp = last/num;
return (temp+1)*temp*num/2;
}
反正商是一个一个地增加嘛!也是符合题意的。只是说编程,又没有说一定要用什么,所以分析一下问题,以最快的方式运行才是实际应用的编程,如果只会第一种方法,那么,也就教教学而已,写软件估计差点。
调用是 int result = getNum(7,100);result就是你要的结果,至于用哪个方法自己想吧。
15*7>100>14*7
结果就是(1+2+.....+14)*7
也就是[(1+14)*14/2]*7=15*7*7=735。
编程时可以考虑使用这种思路,速度快的。以C#编程。
public int getNum(int num,int last)
{
int temp =0;
for(int i = 1 ;i<=last;i++)
{
if(i%num==0)
temp+=i;
}
return temp;
}
显然这样的速度是较慢的,有人可能会发现如果整除时,每隔num个就会整除一下!那么这样写也是无可厚非了:
public int getNum(int num,int last)
{
int temp =0;
for(int i = 0 ;i<=last;i+=num)
{
temp+=i;
}
return temp;
}
先找出第一个能整除7的数,虽然0在这里不合题意,但反正0加上也不多,也可以得出正确的结果的。不过速度要比上一个快的多。那么这样写也是无可厚非的:
public int getNum(int num,int last)
{
int temp = last/num;
return (temp+1)*temp*num/2;
}
反正商是一个一个地增加嘛!也是符合题意的。只是说编程,又没有说一定要用什么,所以分析一下问题,以最快的方式运行才是实际应用的编程,如果只会第一种方法,那么,也就教教学而已,写软件估计差点。
调用是 int result = getNum(7,100);result就是你要的结果,至于用哪个方法自己想吧。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询