数码管
題目背景
小明的單片機上面的LED顯示屏壞掉了,于是他請你來為他修顯示屏。 屏幕上可以顯示0~9的數(shù)字,其中每個數(shù)字由7個小二極管組成,各個數(shù)字對應(yīng)的表示方式如圖所示:
題目描述
為了排除電路故障,現(xiàn)在你需要計算,將數(shù)字A變?yōu)閿?shù)字B需要經(jīng)過多少次變換? 注意:現(xiàn)在將其中每段小二極管的開和關(guān)都定義為一次變換。例如數(shù)字1變?yōu)?是5次操作。
輸入格式
第一行為一個正整數(shù)L,表示數(shù)碼的長度。 接下來兩行是兩個長度為L的數(shù)字A和B,表示要把數(shù)字A變成數(shù)字B(數(shù)字可以以0開頭)。
輸出格式
一行一個整數(shù),表示這些小二極管一共要變換多少次。
輸入輸出樣例
輸入
5
15987
02356
輸出
16
說明/提示
【數(shù)據(jù)范圍】 L< =100
解題思路:
用二維數(shù)組來模擬每段小二極管,亮就是1,不亮就是0
然后就很簡單了
代碼如下:
#include <iostream> using namespace std; int d[12][12] = {{1,1,1,1,1,1,0},{0,0,1,1,0,0,0},{0,1,1,0,1,1,1},{0,1,1,1,1,0,1},{1,0,1,1,0,0,1},{1,1,0,1,1,0,1},{1,1,0,1,1,1,1},{0,1,1,1,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,1,0,1}}; char a[110],b[110];int main() {int n,ans = 0;cin>>n;for (int i = 0;i<n;i++) cin>>a[i];for (int i = 0;i<n;i++) cin>>b[i];for (int i = 0;i<n;i++){int cnt = 0;for (int j = 0;j<7;j++){if (d[a[i]-'0'][j]!=d[b[i]-'0'][j]) cnt++;}ans+=cnt;}cout<<ans<<endl;return 0; }總結(jié)
- 上一篇: 背部刮痧的好处有哪些
- 下一篇: 密电破译-dp