1,思路

大数相加,若直接使用int,或者long都会超出长度,因此考虑使用String存储。

2,代码
public class LargeNumAdd
{ public static void main(String[] args)
{
String sum = "0";
for (int i = 1; i <= 2009; i++)
{
String temp = getStr(i);
sum = getSum(sum, temp);
}
System.out.println("sum: " + sum);
} public static String getSum(String a, String b)
{
if (a.length() > b.length())
{
for (int i = b.length(); i < a.length(); i++)
{
b = '0' + b;
}
} else
{
for (int i = a.length(); i < b.length(); i++)
{
a = '0' + a;
}
}
char array1[] = a.toCharArray();
char array2[] = b.toCharArray();
String sum = "";
int carrayIn = 0;
for (int i = a.length() - 1; i >= 0; i--)
{
sum = getRemain(array1[i], array2[i], carrayIn) + sum;
carrayIn = getCarry(array1[i], array2[i], carrayIn);
}
return sum;
} public static String getRemain(char a, char b, int carrayIn)
{
int sum = (a - '0') + (b - '0') + carrayIn;
String rem = sum % 10 + "";
return rem;
} private static int getCarry(char a, char b, int carryIn)
{
int sum = (a - '0') + (b - '0') + carryIn;
int carry = sum / 10;
return carry;
} public static String getStr(int N)
{
String s = "";
for (int i = 0; i < N; i++)
{
s += "1";
}
return s;
}
}

求sum=1+111+1111+........+1....111 .的更多相关文章

  1. oracle对三个列求sum

    oracle数据库对test_table表的三个列count1,count2,count3求sum的两种sql,做个记录 第一种 select sum (case when count1 is not ...

  2. SQLSERVER去除某一列的重复值并显示所有数据\DISTINCT去重\ISNULL()求SUM()\NOT EXISTS的使用

    进入正题,准备我们的测试数据 1.我们要筛选的数据为去除 GX 列的重复项 并将所有数据展示出来,如图所示: ' 2.这种情况下我们是不可以使用DISTINCT来去重的,我们可以来尝试一下: 首先,单 ...

  3. Python 处理EXCEL的CSV文档分列求SUM

    相对于导出EXCEL文件,PYTHON计算更为实时. import csv import sys from optparse import OptionParser def calculate_pro ...

  4. java篇 之 类型转化

    类型转换时,如果最初的数值类型是有符号的,那么就执行符号扩展:如果它是char,那么不管将要被转换成什么类型,都执行零扩展 代码执行顺序是从上至下,从右至左 强制转换: Int a =(int)(sh ...

  5. noip初赛复习总纲

    初赛复习总纲 目录 初赛复习总纲 计算机发展史 计算机的分类 计算机的应用 操作系统盘点 计算机的基本结构 中央处理器(**CPU**--**Central Processing Unit**) 存储 ...

  6. ethereum(以太坊)(六)--整型(int)

    pragma solidity ^0.4.20; /* uint8 uint16 ...uint256 int8 int16 int24 ..int256 uint => uint256 int ...

  7. 求a + aa + aaa + aaaa + aaaaa ...的值,例如:1 + 11 + 111,2 + 22 + 222 + 2222 + 22222

    #include <stdio.h> unsigned superposition(unsigned m, unsigned n); int main() { printf("1 ...

  8. [华为机试练习题]50.求M的N次方的最后三位

    题目 描写叙述: 正整数M 的N次方有可能是一个很大的数字,我们仅仅求该数字的最后三位 例1: 比方输入5和3 ,5的3次方为125.则输出为125 例2: 比方输入2和10 2的10次方为1024 ...

  9. sum()over()和count()over()分析函数

    创建测试表 ),sales ),dest ),dept ),revenue number); 插入测试数据 ); ); ); ); ); ); ); commit; 查看表记录 SQL> sel ...

随机推荐

  1. HTML5详解(一)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. HTML5的介绍 Web 技术发展时间线 1991 HTML 1994 ...

  2. 二维数组int[3][2]在内存中的分布方式

  3. Oracle Rac创建表空间及用户

    1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...

  4. 01_Linux软件源配置

    一.国内软件源 阿里源:https://mirrors.aliyun.com/ 清华大学:https://mirrors.tuna.tsinghua.edu.cn/ 中科大 : https://mir ...

  5. java 世界中Annotation

    java 世界中Annotation 在github上开始汇总一些自己学习,收集,总结,经验的一些信息,有利于跟踪,修改,提升.如果你感兴趣 可以关注一下,也可以提供自己的内容进来. https:// ...

  6. BZOJ 3473: 字符串 [广义后缀自动机]

    3473: 字符串 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 354  Solved: 160[Submit][Status][Discuss] ...

  7. jQuery源码研究——怎么看源码

    废话 这几天有想看源码的想法,于是就开始了源码的研究,经过几天的摸索发现看源码还是有点技巧在里面的,想着把这些东东写下来作为一个小总结. 在一个多月前我对Vue源码进行了一次研究,那时看源码的方式基本 ...

  8. 通过 AJAX 加载的 JavaScript 脚本的调试

     //# sourceURL=  注意#后面有一个空格.

  9. HashMap----工作原理

    先来些简单的问题 "你用过HashMap吗?" "什么是HashMap?你为什么用到它?" 几乎每个人都会回答"是的",然后回答HashMa ...

  10. LeetCode - 627. Swap Salary

    Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m v ...