调用函数,例,输入2,3(2+22+222的和)

 ###### 问题遇到的现象和发生背景
到调用函数for循环那里不知道该是怎样的算法写出来
 ###### 用代码块功能插入代码,请勿粘贴截图

 ###### 运行结果及报错内容

 ###### 我的解答思路和尝试过的方法

 ###### 我想要达到的结果

#include
double fact(int x,int y);
int main()
{ int sum=0;
  sum=sum+fact(int x,int y);
  printf("%d\n",sum);
  return 0;
}
double fact(int x,int y)
{  int i;
 for(i=1;i<=y;i++)
{ x=x*10+x;
 sum=sum+t;

 }return (sum);

修改如下,供参考:

#include <stdio.h>
int  fact(int x,int y); //double
int main()
{
    int sum=0,a,b;
    scanf("%d%d",&a,&b);//修改
    sum=fact(a,b); //sum=sum+fact(int x,int y);修改
    printf("%d\n",sum);
    return 0;
}
int  fact(int x,int y)//double
{
    int i,sum = 0,t = 0;//修改
    for(i=1;i<=y;i++)
    {
        t=t*10+x; //x=x*10+x; 修改
        sum=sum+t;
    }
    return (sum);
}

思路是将式子改写为:
222+22+2
=200+20+20+2+2+2

#include<stdio.h>
long long fact(int x,int y){
int a=0,b=x;
  for(int i=0;i<y;i++){
    for(int j=1;j<i+1;j++) b*=10;
    b*=y-i;
    a+=b;
    b=x;
}

return a;
}
int main()
{ int x,y;
scanf("%d%d",&x,&y);
x=fact(x,y);
  printf("%d\n",x);
  return 0;
}

第四行:外层循环,每层产生一个b,b代表x乘10的i次方的(y-i)倍。(有3个2,2个20,1个200,按照规律,i次项的系数是y-i(i从0开始))
第五行,内层循环,每层产生一个x乘10的j次方。此时b代表不带系数的每一项。
第六行,给项配上系数。(系数是y-i)。此时b代表多项式中每一项。
第七行,将此项加到多项式上。a表示多项式。
第八行,重置b为x,为下次循环准备。
这样,经过两层循环得到了:
x10^y+1x10^(y-1)+……+(y-1)x10^1+yx*10^0
即所求。