博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯 算法训练 - 简单加法(基本型) 首先给出简单加法算式的定义:   如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加
阅读量:3964 次
发布时间:2019-05-24

本文共 824 字,大约阅读时间需要 2 分钟。

问题描述

首先给出简单加法算式的定义:

  如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。
  例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。

问题:给定一个正整数n,问当i大于等于0且小于n时,有多少个算式(i)+(i+1)+(i+2)是简单加法算式。其中n<10000。

输入格式
  一个整数,表示n
输出格式
  一个整数,表示简单加法算式的个数
例子

样例输入

4
样例输出
3
提示

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0

注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。

思路

只需要用一个函数,来判断(i,i+1,i+2)这三个数相加是否需要进位即可。

代码:

#include 
int num = 0;int judge(int i,int j,int k){
int a,b,c; int flag=1; while(i || j || k) {
a=i%10; b=j%10; c=k%10; i/=10; j/=10; k/=10; if(a+b+c>=10) flag=0; } return flag;}int main (){
int n; scanf("%d",&n); int i; for(i=0;i

转载地址:http://aprzi.baihongyu.com/

你可能感兴趣的文章
Ruby 教程(二)
查看>>
Android——简介
查看>>
Ruby 教程(三)
查看>>
Ruby 教程(四)
查看>>
GHOST后只剩下一个分区后的解决方法
查看>>
局部变量、全局变量、对象变量、类变量
查看>>
手动测试 VS 自动测试
查看>>
QTP基本使用——WORD
查看>>
QTP基本使用——Excel
查看>>
QTP基本使用——检查焦点
查看>>
排序算法之一
查看>>
ArrayList与Vector的区别
查看>>
QTP之描述性编程Descriptive Programming(一)
查看>>
面试题目之一
查看>>
File和Dir类介绍(一)
查看>>
Ruby之————XML创建与解析
查看>>
Ruby之————访问 FTP
查看>>
接触OSPF
查看>>
TCP/IP之一
查看>>
TCP/IP之二
查看>>