1012.cpp
来自「平时acm训练时ac的源代码」· C++ 代码 · 共 82 行
CPP
82 行
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main(){
long m,i,j,l,n,fn1[200]={0},fn2[200]={0},f[200]={0};
char a[10]={0};
scanf("%ld",&n);
scanf("%s",&a);
j=atoi(a);
l=strlen(a);
m=199;
for(i=l-1;i>=0;i--)
{
fn1[m]=(a[i]-'0')*(j-1);
fn2[m]=a[i]-'0';
m--;
}/////////////fn1=k*(k-1);
i=m;//////////////
m=199;
fn2[199]=fn2[199]-1;
while(1)
{
if(fn2[m]<0)
{
fn2[m]=fn2[m]+10;
fn2[m-1]=fn2[m-1]-1;
}
m--;
if(m<=i)
break;
}//////////////////fn2==k-1;
if(n==1)
printf("%d",j-1);
else if(n==2)
{
printf("%d",j*(j-1));
}
else{
j--;////j=k-1;
for(i=1;i<=n-2;i++)
{
for(l=0;l<=199;l++)
{
f[l]=fn1[l];
fn1[l]=fn1[l]+fn2[l];
fn1[l]=fn1[l]*j;
fn2[l]=f[l];
}
for(l=199;l>=0;l--)
{
if(fn1[l]>=10)
{
fn1[l-1]=fn1[l-1]+fn1[l]/10;
fn1[l]=fn1[l]%10;
}
}
}
m=0;
while(fn1[m]==0)
m++;
while(m<=199)
{
printf("%ld",fn1[m]);
m++;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?