BNUOJ 1006 Primary Arithmetic
Primary Arithmetic
来源:BNUOJ 1006
http://www.bnuoj.com/v3/problem_show.php?pid=1006

当你在小学学习算数的时候,老师会教你把两个数由右至左按位加起来。 很多时候,加法过程中会出现进位。对于一部分孩子,理解这个“进位” 在当时是很困难的事情。现在你的工作就是编写一个程序来判断两个数 相加的过程中会产生多少次进位,用以确定这两个数相加的“难度”。 Input 每一行有两个无符号整数(最大不超过1000000000),当输入0 0的时候,程序结束。 Output 对于每一行的输入两个整数,你需要判断会产生有多少个进位,每一个输出占一行。 Sample Input 123 456 555 555 123 594 0 0 Sample Output No carry operation. 3 carry operations. 1 carry operation. Source 第七届北京师范大学程序设计竞赛热身赛第一场 (1)注意输出结果里面的细微区别: operations和operation (2)这个题目大多数人可能会想:直接把两个数当字符串输入再从后往前扫描处理。 其实这个题可以重复下面的过程:取余数直接得到最低位,然后消掉最低位。

1 #include<stdio.h> 2 int main() 3 { 4 int a,b,x,y,c; 5 int result; 6 freopen("input.txt","r",stdin); 7 while(scanf("%d%d",&a,&b)!=EOF) 8 { 9 if(a==0&&b==0) break; 10 result=0; 11 c=0; 12 while(a>0||b>0) 13 { 14 x=a%10; 15 y=b%10; 16 a=a/10; 17 b=b/10; 18 c=x+y+c; 19 if(c>=10) 20 { 21 result++; 22 c=c/10; 23 } 24 else 25 { 26 c=0; 27 } 28 } 29 if(result==0) printf("No carry operation.\n"); 30 else 31 { 32 if(result>1) printf("%d carry operations.\n",result); 33 else printf("%d carry operation.\n",result); 34 } 35 } 36 return 0; 37 }
分类:
003-循环结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App