首页 > 其他分享 >Primary Arithmetic UVA - 10035

Primary Arithmetic UVA - 10035

时间:2024-11-14 18:45:45浏览次数:1  
标签:10 vb idx va ++ Primary carry 10035 UVA

// Primary Arithmetic UVA - 10035.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://vjudge.net/problem/UVA-10035

Children are taught to add multi-digit numbers from right-to-left one digit at a time. 
Many find the "carry" operation - in which a 1 is carried from one digit position to be added to the next - to be a significant challenge. 
Your job is to count the number of carry operations for each of a set of addition problems so that educators may assess their difficulty.


Input

Each line of input contains two unsigned integers less than 10 digits. The last line of input contains 0 0.


Output

For each line of input except the last you should compute and print the number of carry operations that would result from adding the two numbers, 
in the format shown below.


Sample Input

123 456
555 555
123 594
0 0


Sample Output

No carry operation.
3 carry operations.
1 carry operation.
*/



#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>


using namespace std;

vector<int> va, vb;

void fill(long long a, vector<int>& u) {
	u.clear();
	if (a == 0) {
		u.push_back(0); return;
	}
	while (a) {
		u.push_back(a % 10);
		a /= 10;
	}

	return;
}


void solve() {
	int len = min(va.size(), vb.size());
	int ans = 0;
	int carry = 0;
	int idx;
	for (idx = 0; idx < len; idx++) {
		carry = (va[idx] + vb[idx]+ carry) /10;
		if (carry > 0) ans++;
	}

	while (idx < va.size() ) {
		carry = (va[idx]  + carry) / 10;
		if (carry > 0) ans++;
		idx++;
	}
	while (idx < vb.size() ) {
		carry = (vb[idx] + carry) / 10;
		if (carry > 0) ans++;
		idx++;
	}
	//if (carry != 0) ans++;
	if (ans == 0) {
		cout << "No carry operation." << endl;
	}
	else if (ans == 1) {
		cout << "1 carry operation." << endl;
	}
	else {
		cout << ans << " carry operations." << endl;
	}
}

int main()
{
	long long a, b;
	while (cin >> a >> b) {
		if (a == 0 && b == 0) break;
		fill(a, va);
		fill(b, vb);
		solve();
	}

	return 0;
}
	

 

标签:10,vb,idx,va,++,Primary,carry,10035,UVA
From: https://www.cnblogs.com/itdef/p/18546581

相关文章

  • 题解:UVA1362 Exploring Pyramids
    思路:显然的,若不是叶子结点都应该至少遍历两次。于是两个相同访问之间就可能是一颗子树。更加具体的,如同\(s_l,\dots,s_k,\dots,s_r\),使得\(s_l=s_k\),那么就可以认为\(s[l,k]\)是\(s[l,r]\)的一颗子树,设区间\(s[l,r]\)的结构数量为\(f_{l,r}\),那么根据乘法原理,当把\(......
  • UVA11294 Wedding 题解
    洛谷题目传送门前排提示:本题需要用到知识点2-SAT以及强联通分量,模板传送门P4782【模板】2-SAT。题目大意:有至多303030对夫妻将会参加一个婚宴。他们将会坐在一个......
  • UVA11294 Wedding 题解
    洛谷题目传送门前排提示:本题需要用到知识点2-SAT以及强联通分量,模板传送门P4782【模板】2-SAT。题目大意:有至多\(30\)对夫妻将会参加一个婚宴。他们将会坐在一个长桌子的两边。新郎新娘坐在彼此相对的一端并且新娘带着一个头饰使得她看不到和她坐在同一边的人。夫妻坐在......
  • UVA1240 ICPC Team Strategy 做题记录
    看到\(n\le12\),考虑搜索。但是过不去,于是加上记忆化搜索即可。因为\(n\)不大,选了什么题可以状压进一个数里面。注意如果你在搜索的时候不判是否满足时间,那么你在dfs函数开头判断超时应该返回\(-1\)及以下。剩下的按照题意模拟即可。点击查看代码intn,a[4][maxn];i......
  • 帝国CMS后台添加信息报错Duplicate entry xx for key PRIMARY
    当在帝国CMS后台添加信息时遇到 Duplicateentry'xx'forkey'PRIMARY' 的错误时,通常是因为主键冲突。以下是一些解决该问题的方法:方法1:后台修复数据库进入后台:登录帝国CMS后台。进入 系统 -> 备份与恢复数据 -> 备份数据。修复数据表:在页面底部,找到 修复......
  • 题解:UVA1500 Alice and Bob
    状态表示:使用两个变量来表示当前游戏的状态:\(a\)表示包含\(1\)个石子的堆的数量,\(b\)表示包含多于\(1\)个石子的堆的可操作次数。游戏策略:从包含多个石子的堆中取走一个石子,这会减少\(b\)。从包含\(1\)个石子的堆中取走一个石子,这会减少\(a\)。合......
  • 题解:UVA124 Following Orders
    考虑深搜和拓扑排序。从入度为零的节点开始,逐步添加到当前的排列结果中,并在每一步递减相邻节点的入度。如果某个节点的入度变为零,就递归地将其添加到当前排列中。一旦达到排列的叶节点,就存储起来,并按字典顺序排序。代码:#include<bits/stdc++.h>usingnamespacestd;voidread......
  • 题解:UVA117 The Postal Worker Rings Once
    此题要求我们求欧拉回路的长度。使用Floyd算法计算图中任意两点之间的最短路径,对于度数为奇数的路口(最多有两个),找到它们之间的最短路径并将其加入总路径长度中。代码:#include<bits/stdc++.h>#defineINF1e8usingnamespacestd;intdegree[26];intpath[26][26];intal......
  • NGINX 提示 "Primary script unknown" 错误
    起因我在home目录下打算安装thinkphp进行学习,采用nginx作为web服务器,遇到了错误,记录如下.具体的错误提示在nginx的错误日志error.log中提示如下:FastCGIsentinstderr:"Primaryscriptunknown"whilereadingresponseheaderfromupstream翻译过来,大致的......
  • 题解:UVA1456 Cellular Network
    UVA1456CellularNetwork题解夭寿了!30行写完紫题了!更新:已联系管理员修改难度,现在是绿题题意很简单,不再赘述。首先一个小贪心,将概率\(u​\)进行从大到小的排序,优先查看概率大的区域,显然这样能够保证访问数量期望最小。接着考虑如何将区域分组。一个显而易见的思路是动态......