码迷,mamicode.com
首页 > 其他好文 > 详细

蓝桥杯 密码发生器

时间:2015-04-10 17:40:32      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

程序任务就是把遗传拼音字母转换为6位数字,我们可以使用任何好记的拼音串,变换过程如下,第一步,把字符串六个一组折叠起来,比如wangximing变为:

Wangxi

Ming

第二步,把所有垂直在同一个位置的字符ascii码值想加,得出6个数字,如上面的例子,则得出228 202 220 206 120 105

再把每个数字缩位处理,就是把每个位的数字相加,得出的数字如果不是一位数字,就在缩位,最后变为344836

 

 

#include<stdio.h>
#include<string.h>
int check(int n){
    int sum=0;
    if(n<10)    return n; //当n是个位数的时候直接返回 
    while(n>0){  //加上n的各个位上的数字 
        sum+=n%10;
        n=n/10;
    }
    check(sum); //检查和是否为个位数,重复上面的操作 
}
//wangxi
//ming
void f(char a[]){
    int b[6]={0};  //创建一个新的数组,存入字符数组的和 
    for(int i=0;i<strlen(a);i++){
        b[i%6]+=a[i];   //新的数组循环加入新的字符 
    }
    for(int i=0;i<6;i++){
        printf("%d ",b[i]);
    }
    printf("\n");
    for(int i=0;i<6;i++){
        printf("%d ",check(b[i]));
    }
}
int main(){
    char a[]={"wangximing"};
    f(a);
    return 0;
}

 

蓝桥杯 密码发生器

标签:

原文地址:http://www.cnblogs.com/sky-z/p/4414943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!