1.問題描述
2.問題分析
3.演算法設計
4.請給定數的長度
int numberofdigit(long num)
return count;5.分離乙個定數最後的幾位
//分離乙個定數 的最後k位
int lastnumber(long objectnumber,int k)
} return result;
}5核心演算法
//分析與演算法設計 若採用「求出乙個數的平方後再擷取最後相應位數」的方法顯然是不可取的,因為計算機無法表示過大的整數。
//分析手工方式下整數平方(乘法)的計算過程,以376為例
//376x376
//2256 第乙個部分積=被乘數*乘數的倒數第一位
//2632 第二個部分積=被乘數*乘數的倒數第二位
//1128 第三個部分積=被乘數*乘數的倒數第三位
//核心演算法,以上三部分積求和,然後分離最後三位
long sqrtnum(int num)
}return result;6完整程式
int numberofdigit(long num)
return count;//分離乙個定數 的最後k位
int lastnumber(long objectnumber,int k)
}
return result;
//分析與演算法設計 若採用「求出乙個數的平方後再擷取最後相應位數」的方法顯然是不可取的,因為計算機無法表示過大的整數。
//分析手工方式下整數平方(乘法)的計算過程,以376為例
//376x376
//2256 第乙個部分積=被乘數*乘數的倒數第一位
//2632 第二個部分積=被乘數*乘數的倒數第二位
//1128 第三個部分積=被乘數*乘數的倒數第三位
//核心演算法,以上三部分積求和,然後分離最後三位
long sqrtnum(int num)
}return result;int main(int argc,char*argv)
}return 0;7執行結果
自守數:1
自守數:5
自守數:6
自守數:25
自守數:76
自守數:376
自守數:625
自守數:9376
自守數:90625
8優化拓展
9優化後完整程式框架
10完整程式
3 2趣味整數之自守數
1.問題描述 2.問題分析 3.演算法設計 4.請給定數的長度 int numberofdigit long num return count 5.分離乙個定數最後的幾位 分離乙個定數 的最後k位 int lastnumber long objectnumber,int k return resul...
趣味問題之趣味整數
coding utf 8 created on thu nov 17 16 52 17 2016 author alis 趣味百題之趣味整數 求乙個數的所有因子 def factors num p 1 q num a while p q if num p 0 p 1 q num p a.sort r...
c 趣味整數(2) 親密數
題目描述 假設兩個正整數a 和 b是親密數,那麼有如下的性質 整數a的全部真約數 包括1,不包括a本身 之和等於b 整數b的全部真約數 包括1,不包括b本身 之和等於a。比如 220 和 284 220的全部真約數有 1 2 4 5 10 11 20 22 44 55 110 284 284的全部真...