0
我試圖將5位數的郵政編碼轉換爲27位數的條形碼(由0和1組成),反之亦然。條碼的第一個和最後一個數字始終爲1.刪除這些數字後留下25位數字。分成5位數字,從左到右數字編碼值7,4,2,1,0。如果乘以相應的數值並計算總和,我們可以得到第一個郵政編碼。例如,條形碼的25位數字是10100 10100 01010 11000 01001中,郵編將是99504.C++逐個比較整數
1×7 = 7
0×4 = 0
1×2 = 2
0 X 1 = 0
0 X 0 = 0
總和= 9
// main.cpp
#include <iostream>
#include <iomanip>
#include "ZipCode.h"
using namespace std;
int main()
{
ZipCode zip1(99504);
ZipCode zip2(12345);
ZipCode zip3(67890);
ZipCode zip4("100101010011100001100110001");
ZipCode zip5("110100001011100001100010011");
ZipCode zip6("100011000110101000011100101");
cout << "Digits" << " " << "Bar Code" << endl;
cout << zip1.getZipCode() << setw(35) << zip1.getBarCode() << endl;
cout << zip2.getZipCode() << setw(35) << zip2.getBarCode() << endl;
cout << zip3.getZipCode() << setw(35) << zip3.getBarCode() << endl;
cout << endl;
cout << zip4.getZipCode() << setw(35) << zip4.getBarCode() << endl;
cout << zip5.getZipCode() << setw(35) << zip5.getBarCode() << endl;
cout << zip6.getZipCode() << setw(35) << zip6.getBarCode() << endl;
return 0;
}
現在這是我的問題:在getZipCode(int num){}
,我如何比較每個整數值並評估爲條形碼?例如,在main()
中,它表示ZipCode zip1(99504);
。由於99504是一個整數,我如何評估9條碼,然後評估下一個等等?
看一看這個帖子:[?HOWTO分割INT到它的數字(http://stackoverflow.com/questions/4261589/howto-split-a-int-into-its-digits-digit) –
腦死亡方法是sprintf數字和訪問字符... –
請注意,編碼*'0'的位實際上是[奇偶校驗位](https://en.wikipedia.org/wiki/Parity_bit)。 – Jarod42