将之前一段时间在牛客上刷的题给大家分享一下。其中一道题是“提取不重复的整数”,现在将通过的代码贴一下,供大家参考。
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是0。
#include <stdio.h> #include <stdlib.h> #include <string.h> int getmi(int pos) { int sum =1; int i; for(i=0;i<pos;i++) { sum *=10; } return sum; } int getsum(char * number,int len) { int count=0; int i=0; for(i=0;i<len;i++) { count+=(number[i]-'0')*getmi(len-i-1); } return count; } int getnumber(char *input,char *output) { int len=strlen(input); int outlen = 1; int i=0; int j=0; output[0] = input[len-1]; char c ; bool appear=false; for(i=0;i<len-1;i++) { appear = false; c = input[len-1-1-i]; for(j=0;j<outlen;j++) { if(c==output[j]) { appear=true; } } if(appear==false) { output[outlen]=c; outlen++; } } return outlen; } int main() { char inputstream[100]={0}; char outputstream[100]={0}; scanf("%s",inputstream); int sum = getnumber(inputstream,outputstream); int count = getsum(outputstream,sum); printf("%d",count); }