藍橋杯 演算法訓練 - 簡單加法(基本型) 首先給出簡單加法算式的定義: 如果有一個算式(i)+(i+1)+(i+2),(i>=0),在計算的過程中,沒有任何一個數位出現了進位,則稱其為簡單的加
問題描述
首先給出簡單加法算式的定義:
如果有一個算式(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 <stdio.h>
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<n;i++)
{
if(judge(i,i+1,i+2)==1)
num++;
}
printf("%d",num);
return 0;
}
相關文章
- 一個簡單的二進位制加法器
- 一個簡單的十六進位制解碼器
- 一個最簡單的計算器
- Java實現一個簡單的計算器Java
- 簡簡單單躲過JavaScript的3個錯誤釋出JavaScript
- 一個簡單的遠端溢位漏洞分析
- 一個簡單的自定義Collection
- 從0到1實現一個簡單計算器
- [藍橋杯][演算法提高VIP]大數加法演算法
- 用java實現一個簡單的計算器Java
- ACM 16進位制的簡單運算ACM
- wps/excel計算單元格內的算式Excel
- 學習一個簡單的儲存過程儲存過程
- 寫了一個簡單好用的彈出層外掛
- 簡單-定義一個小程式元件元件
- SAP MM採購定價過程的一個簡單例子單例
- 如何實現一個簡單的釋出訂閱模式模式
- 簡單的寫一個釋出訂閱器
- 利用ANTLR4實現一個簡單的四則運算計算器
- 16進位制的簡單運算(迴圈)
- 一個簡單java程式的執行全過程Java
- DRY原則的一個簡單實踐
- 發一個自己寫的簡單32位遊戲保護遊戲
- 一個簡簡單單的紅點系統框架框架
- 位運算簡單操作
- 如何訓練一個簡單的音訊識別網路音訊
- 藍橋杯-移動距離(最簡單的寫法)
- 實現一個簡單的C++協程庫C++
- 實現一個簡單的DOM diff演算法演算法
- 實現一個簡單的輪詢演算法演算法
- php實現一個簡單的socketPHP
- 實現一個簡單的TomcatTomcat
- 實現一個簡單的 RESTful APIRESTAPI
- 實現一個簡單的模板引擎
- 實現一個簡單的 dd 庫
- 自己實現一個簡單的 PromisePromise
- php實現一個簡單的堆PHP
- Java實現一個簡單的BitArrayJava