OpenClaw 还是 Hermes:一个看频道集成与多 Agent,一个看开箱即用与 token 成本——把选型落到场景取舍上
2026/10/27 2:04:48
/** * 题目名称:大整数减法 <p> * 题目来源:http://noi.openjudge.cn/ch0106/11/ <p> * 程序功能:输出两个指定正整数相减的差 * * @author 潘磊,just_panlei@just.edu.cn * @version 1.0 */importjava.util.Arrays;importjava.util.Scanner;publicclassMain{/** * 将指定字符串形式的非负整数转为整型数组形式。 * * @param num 指定字符串形式的非负整数。 * @return num的整型数组形式。 */publicint[]str2arr(Stringnum){intn=num.length();// num的长度int[]ans=newint[n];// num的整型数组形式/* 依次遍历num的每个字符 */for(inti=0;i<n;i++){/* 字符'9'对应数字9,字符'8'对应数字8,以此类推,字符'0'对应数字0 '9' - '0' = 9 '8' - '0' = 8 以此类推 '0' - '0' = 0 */ans[i]=num.charAt(i)-'0';// 对位存储当前字符对应的整数数字}returnans;}/** * 移除指定数组形式的非负整数的前导0。 * * @param nums 指定数组形式的非负整数。 * @return 移除nums前导0的结果数组。 */publicint[]removeLeadingZeros(int[]nums){intn=nums.length;// nums的长度/* 依次遍历nums的每个元素 */for(inti=0;i<n;i++){if(nums[i]!=0){// 如果当前元素为非0元素returnArrays.copyOfRange(nums,i,n);// 返回nums下标在[i,n)区间的元素}}returnnewint[]{0};// 以上没有产生返回,说明nums所有元素均为0,返回数组形式的0}/** * 返回两个指定数组形式的非负整数的差。 * * @param numA 指定数组形式的非负被减数。 * @param numB 指定数组形式的非负减数。 * @return 数组形式的numA与numB的差。 */publicint[]subtract(int[]numA,int[]numB){intn=numA.length;// 对位减法的次数取决于被减数的长度intm=numB.length;// 减数的长度int[]A=Arrays.copyOfRange(numA,0,n);// 依次存储被减数的每位数字int[]B=newint[n];// 将减数扩充至与被减数等长,不够的在左侧补0int[]ans=newint[n];// 对位减法的结果inti;intj;/* 按右对齐方式,将减数中的所有数字存入B中 */for(i=m-1,j=n-1;i>=0;i--,j--){B[j]=numB[i];}/* 从整数低位到高位依次进行对位相减,共相减n次 */for(i=n-1;i>=0;i--){ans[i]=A[i]-B[i];// 计算当前位的对位减法if(ans[i]<0){// 如果当前位减法的结果小于0ans[i]+=10;// 从被减数的高一位借10A[i-1]--;// 被减数的高一位减1}}returnremoveLeadingZeros(ans);// 返回无前导0的结果}publicstaticvoidmain(String[]args){Maincall=newMain();Scannerinput=newScanner(System.in);Stringone=input.next();Stringtwo=input.next();int[]numA=call.str2arr(one);int[]numB=call.str2arr(two);int[]ans=call.subtract(numA,numB);for(inte:ans){System.out.print(e);}}}/** * 题目名称:大整数减法 <p> * 题目来源:http://noi.openjudge.cn/ch0106/11/ <p> * 程序功能:输出两个指定正整数相减的差 * * @author 潘磊,just_panlei@just.edu.cn * @version 2.0 */importjava.math.BigDecimal;importjava.util.Scanner;publicclassMain{/** * 返回两个字符串形式的非负整数的差。 * * @param one 字符串形式的非负整数。 * @param two 字符串形式的非负整数。 * @return BigDecimal形式的one与two的差。 */publicBigDecimalsubtract(Stringone,Stringtwo){// 调用BigDecimal类的subtract方法完成大整数减法运算returnnewBigDecimal(one).subtract(newBigDecimal(two));}publicstaticvoidmain(String[]args){Maincall=newMain();Scannerinput=newScanner(System.in);Stringone=input.next();Stringtwo=input.next();BigDecimalans=call.subtract(one,two);System.out.print(ans);}}