識別條形碼

2021-07-11 14:36:32 字數 1326 閱讀 9286

問題描述

計算機學院2013級的院草語文難同學是軟院院花牟黑黑愛慕的物件,因此牟黑黑經常約楠神去逛街,楠神不喜歡陪牟黑黑逛街,但是不得不從啊。所以在牟黑黑逛街的時候他就無聊的用眼睛識別條形碼 。

在生活中,條形碼經常用來標誌物品的資訊。條形碼是由黑白相間的條組成的。條的寬度有兩種,我們可以認為窄的代表0,寬的代表1。本題中設定寬條的寬度是窄條的兩倍。

楠神擁有很強的diy精神,他決定做乙個條形碼識別工具。首先他完成了影象識別部分,得到了一系列條的寬度。他希望將這些寬度識別為乙個01串。本來這是乙個非常簡單的任務,可是由於楠神在識別的時候會有誤差,使得問題變得沒那麼簡單了。不過楠神認為測量得到的結果最多比真實值大或小5%。請你幫忙完成這個識別程式。已知條形碼中至少有乙個是寬條,可能沒有窄條。

輸入第一行為乙個數字n(n<20),表示楠神識別出了n個條。

第二行為n個正整數,均不大於10^8。

輸出為乙個長度為n的01串,寬條對應1,窄條對應0。如果有些條偏差的超過了限制,輸出「bad barcodes」

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

4↵99 105 200 199↵

以文字方式顯示

0011↵

1秒64m0

題解思路

整體思路:

整體思路就是對給出的資料進行排序,根據最值得情況來判斷改組資料是不是合法,是不是只有寬條,處理好多%5少%5就好了。

具體實現:

討論區裡面大神們已經用各種不同的方法得到了結果,我這裡就不說了就給出幾個判定的等式

寬max/窄min<=1.05/0.95

窄max/窄min<=1.05/0.95

寬max/窄min<=2.1/0.95

寬min/窄max>=1.9/1.05

因為一共只有20個數所以可以有比較多的方法。

實現**

#include#includeint cmp(const void *x,const void *y)

int main()

{ int n,i;

long ch[23],lin[23],l[23];

double sky1,sky2;

double zhong;

scanf("%d",&n);

for(i=0;i=zhong)

{ for(i=0;i=l[n-1]/1.05)

{for(i=0;i

一維條形碼識別c語言 條形碼技術的優點

條形碼是迄今為止最經濟 實用的一種自動識別技術。條形碼技術具有以下幾個方面的優點 a 輸入速度快 與鍵盤輸入相比,條形碼輸入的速度是鍵盤輸入的5倍,並且能實現 即時資料輸入 b 可靠性高 鍵盤 輸入資料出錯率為三百分之一,利用光學字元識別技術出錯率 為萬分之一,而採用條形碼技術誤位元速率低於百萬分之...

生成條形碼

一 路由 routes.maproute name home url home getbar defaults new 二 html頁 text value id codenum button value 生成條形碼 onclick wds createbar width 200px height ...

條形碼生成

生成條形碼的類 public class barcode128dll set private font m valuefont new font 宋體 10 是否顯示可見號碼 如果為null不顯示號碼 public font valuefont set private byte m magnify ...