蓝桥杯 密码发生器

程序任务就是把遗传拼音字母转换为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;
}

 

posted @ 2015-04-10 16:08  sky-zz  阅读(231)  评论(0编辑  收藏  举报