3 2趣味整數之自守數

2021-08-27 23:01:57 字數 1702 閱讀 2877

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的全部真...