黑马程序员技术交流社区
标题:
如何才能将一些数学的问题转换成代码来表示呢?
[打印本页]
作者:
严露华
时间:
2013-4-15 00:47
标题:
如何才能将一些数学的问题转换成代码来表示呢?
本帖最后由 严露华 于 2013-4-15 22:36 编辑
比如取1到100的素数,怎么才能用代码来表示,还有随机从1到100的取两个数,求出他们的最大公约数和最小公倍数,这样的代码应该怎么写?那么数学和代码之间有没有相通的思想呢?
作者:
王大斌
时间:
2013-4-15 07:32
程序设计的思想:数据结构+算法。
首先先建立数学模型
作者:
张先龙
时间:
2013-4-15 08:33
首先,你得知道什么是素数啊,素数在数学里面的计算公式是是什么,只要明确了这个,也就是这个方法的算法,用代码写出来就不是什么问题了
找到素数的代码
[素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积]
class Primes{
public static void main(String args[]){
int w=1
for(int i=2;i<=100;i++){
for(int j=2;j<i;j++){
w=i%j;
if(w==0)
break;
}
if(w!=0)
System.out.println(i+"是素数");
}
}
}
找到质数:代码
所谓质数就是只能被1和它本身整除的数,那么对于某一个数a,可以试着让它除以a-1......2,如果有任意一次除法的余数为零,这个数a就不是质数。
程序中可以写成for循环的形式:
for(int i = 2; i < 100; i++) {
for (int j = i-1; j > 1; j--) {
if (i % j == 0) {
System.out.println("数字" + i + "不是质数");
break;
}
}
}
上面的代码只是给你一个算法 具体实现你可以去自己琢磨一下 还有就是这个代码可以优化一下 ,比如只要2的倍数的都不是质数,并且是2的倍数的 i 都不必作为验证的除数去除。可以提高一些效率。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2