题解 | 无限长正整数排列字符串

无限长正整数排列字符串

https://www.nowcoder.com/practice/82c92d2321bb4220a3006d52a95a8bdd

#include <stdio.h>
#include<math.h>
int main() {
    char s[1005];
    int n;
    int m1,m2;
    scanf("%d",&n);
    if(n<=9){//9表示1-9的字符数
        printf("%d",n);
    }
    else if(n<=189){//189表示1-99的字符数
       m1=(n-9)%2;
       m2=ceil((n-9)/2.0);
       if(m1==0)
       printf("%d",(9+m2)%10);
       else
       printf("%d",(9+m2)/10);
    }
    else{
        m1=(n-189)%3;
        m2=ceil((n-189)/3.0);
        if(m1==0)
        printf("%d",(99+m2)%10);
        if(m1==1)
        printf("%d",(99+m2)/100);
        if(m1==2)
        printf("%d",(99+m2)%100/10);
    }
    return 0;
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务