小程式,面試題
阿新 • • 發佈:2018-12-10
#include<stdio.h>
#include<string.h>
int IntoStr(char *p,int n)
{
char *str=p;//整型數轉換成字串
int i,j,len,temp;
for(i=0;n>0;i++)
{
str[i]=n%10+'0';
n/=10;
}
len=strlen(str);
i=0;
j=len-1;
while(i<j)//字串順序倒序排序
{
temp=str[j];
str[j]=str[i];
str[i]=temp;
i++;
j--;
}
return len;
}
long transition(char *p,int m,int len)
{
int i,j;
int a;
long sum=0;//m對應位數,個位,十位,或者百位
for(i=0;i<len;i++)
{
a=1;
for(j=0;j<p[len-m]-'0';j++)
{
a*=p[i]-'0';
}
sum+=a;
}
return sum;
}
int main(void)
{
char str[10]={'\0'};
int n,m,len;
printf("Please input an integer!\n");
scanf("%d",&n);
printf("Please input an bit position!\n");
scanf("%d",&m);
len=IntoStr(str,n);
printf("the value of transition(str,m,strlen(str)) is %ld.\n",transition(str,m,len));
return 0;
}
#include<string.h>
int IntoStr(char *p,int n)
{
char *str=p;//整型數轉換成字串
int i,j,len,temp;
for(i=0;n>0;i++)
{
str[i]=n%10+'0';
n/=10;
len=strlen(str);
i=0;
j=len-1;
while(i<j)//字串順序倒序排序
{
temp=str[j];
str[j]=str[i];
str[i]=temp;
i++;
j--;
}
}
long transition(char *p,int m,int len)
{
int i,j;
int a;
long sum=0;//m對應位數,個位,十位,或者百位
for(i=0;i<len;i++)
{
a=1;
for(j=0;j<p[len-m]-'0';j++)
a*=p[i]-'0';
}
sum+=a;
}
return sum;
}
int main(void)
{
char str[10]={'\0'};
int n,m,len;
printf("Please input an integer!\n");
scanf("%d",&n);
printf("Please input an bit position!\n");
scanf("%d",&m);
len=IntoStr(str,n);
printf("the value of transition(str,m,strlen(str)) is %ld.\n",transition(str,m,len));
return 0;
}