zoj 2476 Total Amount

原创 2012年03月31日 10:41:37
//这题主要是大数相加!不过要注意,有小数点!输出的格式也非常严格!WA了很多次,因为没有考虑到全是0.00相加的情况! 
#include "iostream"
#include "string"
#include "memory.h"
#include "cctype"
#include "algorithm"
using namespace std;

int temp[20], ans[20];

int main()
{
    int N, i, j, k, len, count;
    string input, output;
    while (cin >> N && N)
    {
          output = "";
          memset(ans, 0, sizeof(ans));
          for (i = 0; i < N; i++)
          {
              cin >> input;
              memset(temp, 0, sizeof(temp));
              len = input.length();
              for (j = 0, count = 0; j < len; j++)//将字符转换为数字 
              {
                  if (isdigit(input[len-1-j]))
                  {
                  temp[count] = input[len-1-j] - 48;
                  count++;
                  }
              }
              for (j = 0; j < 20; j++)//大数相加的一般做法! 
              {
                  ans[j] = temp[j] + ans[j];
                  ans[j+1] += ans[j] / 10;
                  ans[j] = ans[j] % 10;
              }
              
          }
          for (j = 0; j < 20; j++)
          if (ans[20-1-j] != 0)
          break;
          k = 20-1-j;
          k = k >= count-1 ? k : count-1;//判断是否忽略了前导0,这个需要特别留意,很容易出错! 
          for (j = 0, i = 1; j <= k; j++, i++)//格式的输出! 
		  {
          output += ans[j] + 48;
		  if (j == 1)
		  {
			  output += ".";
			  i = 0;
		  }
		  if (i%3 == 0 && i != 0 && i != k-1)
		  {
			  output += ",";
		  }
		  }
		  output += "$";
          reverse(output.begin(), output.end());
          cout << output << endl;
    }
	return 0;
}
/*
3
$11,999,999.99
$99,999,999.99
$111,999,999.11
3
$0.00
$0.00
$0.00 
*/




ZOJ 2476 Total Amount 字符串

给你n串数字组成的字符串,要求输出他们相加的和。 如:n= 2 输入$1,123.45和$2,890.23要求输出$4,013.68...

zoj_2476 Total Amount

题目链接:zoj 2476 本以为把蓝书做完了,没想到 还有一条漏网之鱼…… 该题的综合性比较强,涉及到字符串处理、进位处理、反转容器、输出格式处理。 处理字符串要注意一下几点: 1. 输入时删除...

B-Total Amount (ZOJ 2476)

Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice...

zoj2562 More Divisors && CF27E. Number With The Given Amount Of Divisors(反素数)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1562 题意:求n以内因子最多的那个数。 思路:范围非常大,不能用普通的求...

使用OleDb写入Excel异常,"字段太小而不能接受所要添加的数据的数量" "the field is too small to accept the amount of data "

解决方法: excel是根据第一行数据来判断数据类型的,所以你需要在第一行相应字段添加足够长的字符串(随便写长一点就行,导入后可以删除的嘛). 这个问题是字段默认长度是250,而你添加的数据操作250...

【URAL 1056】Amount of Degree

Amount of Degrees Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64...

ural1057Amount of Degrees-数位dp

题目地址:http://acm.timus.ru/problem.aspx?space=1&num=1057 1057. Amount of Degrees Time limit: 1.0 sec...
  • ly59782
  • ly59782
  • 2016年08月08日 15:43
  • 229

数位DP-URAL-1057-Amount of Degrees

Amount of Degrees Time limit: 1.0 second Memory limit: 64 MB Create a code to determine the amoun...

FLEX how to reduce the amount of code to reduce memory consumption

These are some ways to reduce the code or memory, select an author of the network. 1. Avoid the n...

ural 1057 Amount of degrees 数位DP (入门)

/** * 数位dp: * 第一道数位dp题,还是看《浅谈数位类统计问题》看到的题, * 关于数位dp的理解,理解那棵完全二叉树就很容易理解了。 * 关键是对于非二进制的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj 2476 Total Amount
举报原因:
原因补充:

(最多只允许输入30个字)