#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--;
}
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;
}