实现两个大数相加

news/2024/7/19 13:29:45 标签: js
<script>
let a = "9007199254740991";
let b = "1234567899999999999";

function add(a ,b){
   //取两个数字的最大长度
   let maxLength = Math.max(a.length, b.length);
   //用0去补齐长度 padStart第一个参数为长度,第二个为要补全的元素
   a = a.padStart(maxLength , 0);//"0009007199254740991"
   b = b.padStart(maxLength , 0);//"1234567899999999999"
   let t = 0;
   let f = 0;  
   let sum = "";
   for(let i=maxLength-1 ; i>=0 ; i--){
     //遍历他们,十位和十位相加,个位和个位相加,再加上他们进位的数
      t = parseInt(a[i]) + parseInt(b[i]) + f;
      //向下取整
      f = Math.floor(t/10);
      //加上他们的余数
      sum = t%10 + sum;
   }
   if(f == 1){
      sum = "1" + sum;
   }
   return sum;
}
</script>

http://www.niftyadmin.cn/n/1371473.html

相关文章

数组的去重

1.利用对象 思路&#xff1a;定义一个对象和数组&#xff0c;用对象来判断数组里的每一个元素是否一样&#xff0c;把数组的每一个都作为对象的key如果对象里面存在这个key当前就不添加到新数组中&#xff0c;没过没有就添加到新数组中 const arry[1,5,3,6,3,5,3,6,6,3,5,8,9,…

typeof与instanceof

typeof typeof 操作符返回一个字符串&#xff0c;表示未经计算的操作数的类型 typeof 1 // number typeof 1 // string typeof undefined // undefined typeof true // boolean typeof Symbol() // symbol typeof null // object typeof [] // object typeof {} // object ty…

vue3 toRow与markRaw、customRef 获取真实的对象用于操作该对象

toRow 作用&#xff1a;将生成的响应式数据转为普通数据&#xff0c;这样就可以操作该对象&#xff0c;以及获得该对象的属性。否则获取的是一个响应式对象&#xff08;输出是一个proxy对象&#xff09;。 markRaw 作用&#xff1a;标记一个对象&#xff0c;使其永远不会再…

vue3 setup中使用if当条件为真不进入if语句

需要写在onUpdated生命周期里面具体是为什么我也不知道&#xff0c;哪位的大佬可以帮我解答一下

null,undefined,NaN 的区别

undefined 表示不存在这个值。 undefined :是一个表示"无"的原始值或者说表示"缺少值"&#xff0c;就是此处应该有一个值&#xff0c;但是还没有定义。尝试读取时会返回 undefined 例如变量被声明了&#xff0c;但没有赋值时&#xff0c;就等于 undefine…

ES6看看看

https://es6.ruanyifeng.com/#docs/style

ES6的Set,Map,WeakSet,WeakMap

1.set 1.set可以存储引用数据类型 2.set中的数据都是唯一的&#xff08;可以用于初始化数组&#xff0c;实现数组的去重&#xff09; 3.Set实现了 iterator接口&#xff0c;所以可以使用扩展运算符和for…of…进行遍历&#xff0c;顺序就是插入的顺序 4.Map和Set中对象的引用都…

ES6的 class类

类声明和函数声明的区别和特点 1、函数声明可以被提升&#xff0c;类声明不能提升(与let声明类似)。 2、类声明中的代码自动强行运行在严格模式下。 3、类中的所有方法都是不可枚举&#xff08;不可循环&#xff09;的&#xff0c;而自定义类型中&#xff0c;可以通过Object…