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

leetcode第168题-Excel Sheet Column Title

时间:2015-03-31 09:10:39      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

本题目与前面的把序列字母转换为数字的题目正好相反,是把数字转化为对应的序列字母。首先是步骤:根据逐步求商先确定字母有多少个,再动态申请空间避免内存浪费*(s+size-i)就对应于s[size-i],从后往前逐步的给每个字母赋值即可。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

char *convertToTitle(int n) {
    char *s;
    int fac=26,size=0,num=n,i=1;
    while(num>0) {
        num=(num - 1) / 26;
        size++;
    }
    s=(char*)malloc(size*sizeof(char));
    while(n>0){
        n--;
        *(s+size-i)=(char)(n%fac+'A')+*s;
        n/=fac;
        i++;
    }
    return s;
}
int main()
{
	int x;
	while(scanf("%d",&x)!=EOF)
	{
		printf("%s\n",convertToTitle(x));
	}
	return 0;
}

leetcode第168题-Excel Sheet Column Title

标签:

原文地址:http://blog.csdn.net/zyh920521/article/details/44758725

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