时不时0分,时不时10分,20分,30分,,,
查看原帖
时不时0分,时不时10分,20分,30分,,,
340222
代码练习生楼主2020/7/17 15:41
#include<stdio.h>
#include<string.h>

char s[32];
int len;

unsigned long
getNCL(unsigned long new_charLen,unsigned long N){
    while(new_charLen>=N) new_charLen>>=1;
    return new_charLen;
}

char
getChar(unsigned long N){
    printf("%c",s[N]);
}

void
fenzhi(unsigned long new_charLen,unsigned long N){
    while(1){
        if(N<=len){
            N=N<1?len:N;
            getChar(N);
            return ;
        }
        N=N-new_charLen-1;
        new_charLen=getNCL(new_charLen,N);
    }
}


int
main(){
    unsigned long N,new_charLen;
    
    scanf("%s%lu",s+1,&N);
    s[0]='a';       //填入任意一个字符,以防止s[0]为\0
    len=strlen(s);
    new_charLen=len;
    while(new_charLen<N) new_charLen<<=1;   //不能等于
    new_charLen>>=1;
    fenzhi(new_charLen,N);
    return 0;
}
2020/7/17 15:41
加载中...