当前位置: 首页 > news >正文

嘉兴专业自助建站免费咨询seoul

嘉兴专业自助建站免费咨询,seoul,新浪云搭建wordpress,西安 网站建设大数的#xff08;加减乘除#xff09;四则运算、阶乘运算。 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法。 重复了部分 19 课的代码。 1 文本格式 using System; using System.Linq; using System.Text; using System.Collections.Generic; /// summary… 大数的加减乘除四则运算、阶乘运算。 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法。 重复了部分 19 课的代码。 1 文本格式 using System; using System.Linq; using System.Text; using System.Collections.Generic; /// summary /// 大数的加减乘除四则运算、阶乘运算 /// 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法 /// /summary public static class BigInteger_Utility {     /// summary     /// 记录 加减乘除 的运算次数     /// /summary     public static int[] operations { get; set; } new int[] { 0, 0, 0, 0 }; /// summary     /// 《小白学程序》第十九课随机数Random第六随机生成任意长度的大数BigInteger     /// 一般可将超过9位数的数字成为“大数”。     /// 两个大数之间的四则运算用于密码学、高精度计算等应用。     /// 位数很多的浮点数可转为大数再逆转即可。     /// /summary     /// param namen/param     /// returns/returns     public static string rand(int n)     {         // 随机数发生器         Random rnd new Random();         StringBuilder sb new StringBuilder();         // 第一个数字不能为0故0-8之间的随机数 1 1-9         sb.Append((rnd.Next(9) 1).ToString());         // 后面 n-1 个数字为 0-9从 1 开始计数         for (int i 1; i n; i)         {             sb.Append((rnd.Next(10)).ToString());         }         return sb.ToString();     } /// summary     /// 字符串型的数字转为数组     /// 低位右在前比如 123 , n6 存为 3,2,1,_,_,_     /// n 可能大于 a 的长度剩余位置留出来用于 进位 等。     /// /summary     /// param namea/param     /// param namen最大位数后面留0/param     /// returns/returns     public static int[] string_to_digitals(string a, int n)     {         // 字符串 转为 “字符数组”         char[] c a.ToCharArray();         // 存储数字的数组         int[] d new int[n];         // 从最右端个位数字开始转存为数字数组参与后面的计算         for (int i a.Length - 1, j 0; i 0; i--)         {             // 跳过数字前面可能有的 - 号             if (a[i] -) continue;             // 0 字符是最小的数字字符             // 数值 字符 - 0             d[j] a[i] - 0;         }         return d;     } /// summary     /// 数组型数字转为字符串型     /// 低位右在前比如 3,2,1,_,_,_ 转为 123, n6     /// 这是前面 string_to_digitals 的反向计算函数     /// n 可能大于 d 的长度剩余位置留出来用于 进位 等。     /// /summary     /// param named/param     /// returns/returns     public static string digitals_to_string(int[] d)     {         int n d.Length;         // 数字数组 d 含有一些无效的数组         // 因此先从最右段开始去除无效的位置         int k n - 1;         //for (; (k 0) (d[k] 0); k--) ;         while ((k 0) (d[k] 0)) k--;         // 找到有效位置后开始组合字符串         if (k 0)         {             StringBuilder sb new StringBuilder();             for (; k 0; k--) sb.Append(d[k]);             return sb.ToString();         }         else         {             return 0;         }     } /// summary     /// 《小白学程序》第二十课大数BigInteger的四则运算之一加法     /// 大数加法 c a b     /// /summary     /// param namea/param     /// param nameb/param     /// returns/returns     public static string big_integer_plus(string a, string b)     {         int n Math.Max(a.Length, b.Length) 1;         // 位数不长的数字直接计算         if (n 18)         {             return (ulong.Parse(a) ulong.Parse(b)).ToString();         } int[] da string_to_digitals(a, n);         int[] db string_to_digitals(b, n); // 从低位右往高位左相加 #if _ORIGINAL__         for (int i 0; i (n - 1); i)         {             da[i] db[i];             if (da[i] 9)             {                 da[i] - 10;                 da[i 1] 1;             }         }         return digitals_to_string(da); #else         int[] dc new int[n];         Array.Copy(da, dc, n);         for (int i 0; i (n - 1); i)         {             dc[i] dc[i] db[i];             if (dc[i] 9)             {                 dc[i] - 10;                 dc[i 1] 1;             }         }         return digitals_to_string(dc); #endif } } 2 代码格式 using System; using System.Linq; using System.Text; using System.Collections.Generic;/// summary /// 大数的加减乘除四则运算、阶乘运算 /// 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法 /// 除法运算为 Truffer 自创算法 /// /summary public static class BigInteger_Utility {/// summary/// 记录 加减乘除 的运算次数/// /summarypublic static int[] operations { get; set; } new int[] { 0, 0, 0, 0 };/// summary/// 《小白学程序》第十九课随机数Random第六随机生成任意长度的大数BigInteger/// 一般可将超过9位数的数字成为“大数”。/// 两个大数之间的四则运算用于密码学、高精度计算等应用。/// 位数很多的浮点数可转为大数再逆转即可。/// /summary/// param namen/param/// returns/returnspublic static string rand(int n){// 随机数发生器Random rnd new Random();StringBuilder sb new StringBuilder();// 第一个数字不能为0故0-8之间的随机数 1 1-9sb.Append((rnd.Next(9) 1).ToString());// 后面 n-1 个数字为 0-9从 1 开始计数for (int i 1; i n; i){sb.Append((rnd.Next(10)).ToString());}return sb.ToString();}/// summary/// 字符串型的数字转为数组/// 低位右在前比如 123 , n6 存为 3,2,1,_,_,_/// n 可能大于 a 的长度剩余位置留出来用于 进位 等。/// /summary/// param namea/param/// param namen最大位数后面留0/param/// returns/returnspublic static int[] string_to_digitals(string a, int n){// 字符串 转为 “字符数组”char[] c a.ToCharArray();// 存储数字的数组int[] d new int[n];// 从最右端个位数字开始转存为数字数组参与后面的计算for (int i a.Length - 1, j 0; i 0; i--){// 跳过数字前面可能有的 - 号if (a[i] -) continue;// 0 字符是最小的数字字符// 数值 字符 - 0 d[j] a[i] - 0;}return d;}/// summary/// 数组型数字转为字符串型/// 低位右在前比如 3,2,1,_,_,_ 转为 123, n6/// 这是前面 string_to_digitals 的反向计算函数/// n 可能大于 d 的长度剩余位置留出来用于 进位 等。/// /summary/// param named/param/// returns/returnspublic static string digitals_to_string(int[] d){int n d.Length;// 数字数组 d 含有一些无效的数组// 因此先从最右段开始去除无效的位置int k n - 1;//for (; (k 0) (d[k] 0); k--) ;while ((k 0) (d[k] 0)) k--;// 找到有效位置后开始组合字符串if (k 0){StringBuilder sb new StringBuilder();for (; k 0; k--) sb.Append(d[k]);return sb.ToString();}else{return 0;}}/// summary/// 《小白学程序》第二十课大数BigInteger的四则运算之一加法/// 大数加法 c a b/// /summary/// param namea/param/// param nameb/param/// returns/returnspublic static string big_integer_plus(string a, string b){int n Math.Max(a.Length, b.Length) 1;// 位数不长的数字直接计算if (n 18){return (ulong.Parse(a) ulong.Parse(b)).ToString();}int[] da string_to_digitals(a, n);int[] db string_to_digitals(b, n);// 从低位右往高位左相加 #if _ORIGINAL__for (int i 0; i (n - 1); i){da[i] db[i];if (da[i] 9){da[i] - 10;da[i 1] 1;}}return digitals_to_string(da); #elseint[] dc new int[n];Array.Copy(da, dc, n);for (int i 0; i (n - 1); i){dc[i] dc[i] db[i];if (dc[i] 9){dc[i] - 10;dc[i 1] 1;}}return digitals_to_string(dc); #endif} }3 计算结果
http://www.dnsts.com.cn/news/124879.html

相关文章:

  • 厦门做网站 厦门专业做网站的公司 我想做网站遵化市城乡建设规划局网站
  • 经营性质的网站wordpress咋样
  • 汕头网站建设制作报价wordpress siren主题
  • 九江网站建设张旭wordpress导航改哪个php文件夹
  • 七牛怎么做网站服务器珠海高端网站建设
  • 广东建设信息网站首页谷歌搜索引擎为什么打不开
  • 网站全面详细创建步骤南宁自助模板建站
  • 网站建设进度表怎么做坪山商城网站建设哪家效益快
  • 焦作网站建设jz518小黄豆crm
  • 如何建设局域网内部网站wordpress 慢的上天
  • 一个公司做多个网站做百度推广需要自己有个网站吗
  • 重庆做网站公司排名app模板素材下载
  • 网站建设公司利润分配做网站还是小程序
  • 能看人与动物做的网站农林网站建设公司
  • 研究网站建设城市建设与管理网站
  • 六一儿童节网站制作公司网站建设教程
  • 用电脑做兼职的网站比较好10黄页网站建设
  • 湖北网站建设怎样青岛网站建设定制开发
  • 深圳网站设计公司怎么做优化推荐
  • 电商网站建设报价网站制作公司怎么收费
  • flash网站下载科技网站设计
  • 温州营销网站制作费用全网营销
  • 请人做外贸网站应注意什么个人网站制作的步骤
  • 网站 关键词 选择e时代网站制作
  • 大型网站服务器得多少钱网站网页设计平台
  • seo网站的锚文本怎么写wordpress多用户商城系统
  • 影视网站代理中企动力科技股份有限公司待遇
  • 织梦瀑布流网站模板区域网站怎么做
  • 新网站没有死链接怎么做番禺做网站800元
  • 海西州wap网站建设公司wordpress 正文分页