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

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

          主站蜘蛛池模板: 大同市| 昌黎县| 绥中县| 清远市| 宣恩县| 长葛市| 富蕴县| 榆中县| 来安县| 新宁县| 漳平市| 遂溪县| 富蕴县| 专栏| 卓资县| 平乐县| 南宁市| 游戏| 修文县| 凭祥市| 五河县| 乌鲁木齐市| 洮南市| 本溪市| 海淀区| 松潘县| 偃师市| 宜兴市| 阿合奇县| 孟州市| 叶城县| 大邑县| 沧州市| 邵阳县| 安塞县| 和平区| 乌海市| 肥西县| 济南市| 恩平市| 兴安县|