21-语言入门-21-小学生算术

题目地址: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=74

描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。

输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3

1

代码:

#include <stdio.h>

//计算结果
static int calResult(int a,int b);

int main()
{
    int a = 0;
    int b = 0;
   
    while (1)
    {
        scanf("%d %d",&a,&b);
        getchar();
       
        if (a == 0 && b== 0)
        {
            break;
        }
       
        printf("%d\n",calResult(a, b));
    }
   
   
    return 0;
}

//计算结果
static int calResult(int a,int b)
{
    int sub = a+b;
   
    int result = 0;
    do
    {
        int tmpValue = sub % 10;
        int tmpA = a % 10;
        int tmpB = b % 10;
       
        //若没有进位,和比任一个都大
        if (tmpValue >=  tmpA &&
            tmpValue >=  tmpB)
        {
            //排除都是0的情况
            if(tmpValue == tmpA && tmpValue == tmpB && tmpValue != 0)
            {
                ++result;
            }
        }
        else
        {
            ++result;
        }
       
        a = a/10;
        b = b/10;
        sub = sub / 10;
    }while(a>0);
   
    return result;
}

按照从右到左顺序判断每位的两个和与10对比可以计算,

上述代码是从两数之和与两个数的关系进行逐位对比大小来计算,思路不一样,作为参考吧。

时间: 2024-10-10 21:09:01

21-语言入门-21-小学生算术的相关文章

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

c语言入门经典(第5版)

文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF    [点击下载] C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Li

C语言入门(二十五)文件操作

文件操作  一.标准文件的读写 1.文件的打开fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FILE指针来实现对指定文件的存取操作了.当使用打开函数时,必须给出文件名.文件操作方式(读.写或读写),如果该文件名不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头.若已有一个同名文件存在,则删除该文件,若无同名文件,则建立该文件,并将文件指针指向文件开头. fopen(char *f

第一节,C语言入门

1.标示符:    命名规则:    1.只能由字母.数字.下划线组成    2.不能数字开头    3.不能与关键字重名    4.严格区分大小写    命名规范:     1.起一个有意义名字     2.驼峰标示2.注释 注释: 对代码的解释说明,是写给程序看的,方面程序员之间交流 特点: 注释是不参与编译 /* 这里面可以写 */ 多行注释 // 这是一个单行注释 只有这一行是注释,只有 两个斜杠后面才是注释内容 /* */ command + / 注释或取消注释 多行注释是可以嵌套单行

小学生算术

#include<iostream> #include<memory.h> using namespace std; int main() { char m[4],n[4]; cin>>m>>n; int temp[4]; while(m[0]!='0'&&n[0]!='0') { int N=0; memset(temp,0,sizeof(temp)); for(int i=2;i>=0;i--) { temp[i]=temp[i]+

哪有python开发语言入门教程免费下载?

人工智能时代,如果不想被机器人取代,最应该掌握的是编程.Python作为连续10年最受欢迎的编程语言,不但能开发Google .豆瓣等大型网站,还是人工智能领域的第一语言.那么,我猜你想问哪里有python开发语言入门教程. 千锋Python基础教程:http://pan.baidu.com/s/1qYTZiNE Python课程教学高手晋级视频总目录:http://pan.baidu.com/s/1hrXwY8k Python课程windows知识点:http://pan.baidu.com/

VC6.0学习C语言入门SDK

百度网盘链接 VC6.0    密码:t6bd VS2010 密码:3of2 C语言入门教程 在线视频地址(PS此链接摘抄至博主lellansin) Acfun.tv:http://www.acfun.tv/search.aspx#query=C语言入门教程 Bilibili.tv:http://www.bilibili.tv/search?keyword=C语言入门教程 最后和大家分享一个实现行列式算法的C代码 /*=======================================

《Go语言入门》第一个Go语言Web程序——简单的Web服务器

概述 上一篇讲了 <Go语言入门>第一个Go语言程序--HelloWorld,接下来讲一下Go语言Web开发入门必修课:第一个Go语言Web程序--简单的Web服务器. 与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 Go语言Web应用:IBM的云平台Bluemix使用初体验--创建Go语言 Web 应用程序,添加并使用语言翻译服务 Web服务器代码 Google在ht

简单易懂的程序语言入门小册子(9):环境,引入环境

\newcommand{\mt}[1]{\text{#1}} \newcommand{\mE}{\mathcal{E}} \newcommand{\tup}[1]{\left<{#1}\right>} 环境类似于其他语言(C++.JAVA等)的"符号表". 所谓符号表,是一张将变量名与变量代表的内容联系起来的一张表. 不过这里我们抛弃符号表的观点,单纯地从算法角度上引入环境这一概念. 引入环境 通过修改解释器求值过程的算法,可以很自然的引入环境这个概念. 在前面基于文本替换

简单易懂的程序语言入门小册子(6):基于文本替换的解释器,引入continuation

当我写到这里的时候,我自己都吃了一惊. 环境.存储这些比较让人耳熟的还没讲到,continuation先出来了. 维基百科里对continuation的翻译是"延续性". 这翻译看着总有些违和感而且那个条目也令人不忍直视. 总之continuation似乎没有好的中文翻译,仿佛中国的计算机科学里没有continuation这个概念似的. Continuation这个概念相当于过程式语言里的函数调用栈. 它是用于保存"现在没空处理,待会再处理的事"的数据结构. 这样说