DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          最大公約數

          今天一次無意的思考中想起了最大公約數,想一下最大公約數的算法,第一反映是窮舉,然后是短除,再

          之后就想不到別的了,但是在模糊記憶中還應改有個別的,于是翻來覆去的想,忽然好像有個腳歐幾里得

          算法的東西,但具體內容全部和飯一起吃了,哎!google一下,發現果然是這個。實現方式
          ?窮舉
          ?public static int getNumOne(int m,int n){
          ??int num=Math.abs(m-n);
          ??if (num > m){
          ???num=m;
          ??}
          ??if(num >n){
          ???num=n;
          ??}
          ??for(int i=num;i>0;i--){
          ???if(m%i==0 && n%i==0){
          ????num=i;
          ????break;
          ???}
          ??}
          ??return num;
          ?}
          ?歐幾里得
          ?public static int getNumTwo(int m,int n){
          ??int num=1;
          ??if(m>n){
          ???num=getNumTwo(m-n,n);
          ??}else if(m<n){
          ???num=getNumTwo(n-m,m);
          ??}else if(m==n){
          ???num=n;
          ??}
          ??return num;
          ?}
          ?改進算法
          ?public static int getNumThree(int m,int n){
          ??int num=1;
          ??while(num>0){
          ???num=m%n;
          ???m=n;
          ???n=num;
          ??}
          ??return m;
          ?}

          posted on 2006-09-22 00:12 dreamstone 閱讀(1525) 評論(2)  編輯  收藏 所屬分類: 基礎

          評論

          # re: 最大公約數 2006-11-20 12:34 孤枕

          帥哥,輸入15與-5返回的是-5也,我感覺應該是5吧,不是我理解錯了最大公約書數的概念吧  回復  更多評論   

          # re: 最大公約數 2006-11-20 13:56 dreamstone

          呵呵,我的程序有問題,應該是實現了正整數的最大公約數。  回復  更多評論   

          主站蜘蛛池模板: 扎鲁特旗| 彭阳县| 静乐县| 清涧县| 翁源县| 门源| 偃师市| 沧源| 望城县| 白城市| 许昌市| 洛隆县| 和硕县| 锦州市| 大田县| 闽侯县| 当阳市| 日照市| 连州市| 普兰县| 娱乐| 航空| 手机| 祁东县| 肇庆市| 南澳县| 邯郸县| 中西区| 九寨沟县| 大方县| 汝南县| 通榆县| 沙河市| 崇义县| 乌海市| 潜山县| 昆明市| 阿克苏市| 昌平区| 云和县| 班戈县|