当前位置: 代码迷 >> C语言 >> 有一行代码不懂
  详细解决方案

有一行代码不懂

热度:120   发布时间:2006-02-28 14:50:00.0
有一行代码不懂
计算并输出k内最大的10个能被13或17整除的自然数之积。

#include <conio.h>
#include <stdio.h>
int fun(int k)
{
int m=0, mc=0, j;
while((k>=2)&&(mc<10)) //为什么k>=2?
{
if((k%13==0)||(k%17=0))
{
m=m+k;
mc++;
}
k--;
}
return m;
}
main()
{
clrscr();
printf("%d\n", fun(500));
}
搜索更多相关的解决方案: int  代码  fun  include  自然数  

----------------解决方案--------------------------------------------------------
以下是引用飞扬白鸽在2006-2-28 14:50:00的发言:
计算并输出k内最大的10个能被13或17整除的自然数之积。

#include <conio.h>
#include <stdio.h>
int fun(int k)
{
int m=0, mc=0, j;
while((k>=13&&mc<10)) /*13以内有可以整除它们的吗?*/
{
if((k%13==0)||(k%17==0))
{
m=m+k; /*你这是积?分明求的和*/
mc++;
}
k--;
}
return m;
}
main()
{
clrscr();
printf("%d\n", fun(500));
}


----------------解决方案--------------------------------------------------------
计算并输出k内最大的10个能被13或17整除的自然数之和。

自然数之和,我把题目打错了。。。。
----------------解决方案--------------------------------------------------------

飞扬白鸽
你好!
你的程序我看到了。我把原来的程序做了一些与其他同仁不同的改变,程序如下:
#include <conio.h>
#include <stdio.h>
int fun(long k)
{
int m=0, mc=0, j;
while((k>=13)&&(mc<10))
{
if((k%13==0)||(k%17==0))
{
m=m+k;
mc++;
}
k--;
}
return m;
}

main()
{
long n; /*定义为long型,才使n的值更灵活一些。*/
clrscr();
do
{
printf("Please input the data:\nn=");
scanf("%ld",&n); /*加上这两句才能使n值由你随心所欲。*/
}
while(n<85); /*因为满足条件的n 值最小是85。*/
printf("%d\n", fun(n));
}

同时也希望各位同仁给予指点。谢谢!

hyqzchh@163.com


----------------解决方案--------------------------------------------------------
  相关解决方案