实现Luhn检验和实现c++实现

实验代码一

 1 #include <iostream>
 2 using namespace std;
 3 
 4 //<<像程序员一样思考>> 实现Luhn检验和实现 
 5 //Luhn原理 标识号 最后一位是检验数字  
 6 //回车 ASC码值 10 
 7 int method(int temp);
 8 bool luhnMethod(int temp);
 9 int main()
10 {
11 //  const int array_size = 6;
12     const int array_size = 7;
13     int sum = 0;
14     //步骤划分 先实现数组为偶数 大小为6的数组 
15     //乘以2的数字分别为 1 5 9 乘以2后分别为 2 1 9
16     //2 + 1 + 9 + 3 + 7 + 8 = 30 
17     //数组索引0 2 4 
18 //    int age[] = {1,3,5,7,9,8};
19 //    for(int i=0; i<array_size; i++)
20 //    {
21 //        if(i % 2 == 0)
22 //        {
23 //            sum += method(age[i]);
24 //        }
25 //        else
26 //        {
27 //            sum += age[i];
28 //        }
29 //    }
30 //    cout << "sum: " << sum << endl;
31 //    bool flag = luhnMethod(sum);
32 //    cout << "flag: " << flag << endl;
33     //实现数组为奇数 大小为7的数组
34     //1,3,5,7,9,8,2,
35     //乘以2的数字 3 7 8 乘以2的结果为 6 5 7  
36     //在数组中的索引位置 分别为 1 3 5 
37     //相加的结果为 1 + 6 + 5 + 5 + 9 + 7 + 2 = 35 
38     int age[] = {1,3,5,7,9,8,2};
39     for(int i=0; i<array_size; i++)
40     {
41         if(i % 2 != 0)
42         {
43             sum += method(age[i]);
44         }
45         else
46         {
47             sum += age[i];
48         }
49     }
50     cout << "sum: " << sum << endl;
51     bool flag = luhnMethod(sum);
52     cout << "flag: " << flag << endl;
53     return 0;
54 }
55 //如果传入的数值乘以2小于10 返回乘以2之后的数 若大于10 返回个位 十位数 数字相加之和 
56 int method(int temp)
57 {
58     int doubleValue;
59     temp = 2 * temp;
60     if(temp < 10)
61     {
62         doubleValue = temp;
63     }
64     if(temp >= 10)
65     {
66         doubleValue = 1 + temp%10;
67     }
68     return doubleValue;
69 }
70 //Luhn 相加的和能被10整除 则说明标识号正确 否则错误 
71 bool luhnMethod(int temp)
72 {
73     if(temp % 10 == 0)
74     {
75         return true;
76     }
77     else
78     {
79         return false;
80     }
81 }
实验代码二
 1 #include <iostream>
 2 using namespace std;
 3 
 4 //如何处理数字输入  统计输入的数值键的个数 
 5 int main()
 6 {
 7     int temp;
 8     int count = 0;
 9     cout << "input number please" << endl;
10     temp = cin.get();
11     while(true)
12     {
13         //回车键的ASC码值为10  
14         if(temp == 10)
15         {
16             //回车键不算输入的数值键 
17             break;
18         }
19         else
20         {
21             count++;
22             temp = cin.get();
23         }
24     }
25     cout << "输入的数值键的个数为" << count << endl;
26     return 0;
27 }

实验代码三

每输入一个字符就要计算 然而要等到输入完所有数值时,才可以判断输入的数值是奇数还是偶数 

如何用代码实现这个功能

不太懂 明天再更新

猜你喜欢

转载自www.cnblogs.com/littlelittleprince/p/10663174.html