int main() { int i; scanf("%d%d",&n,&m); scanf("%s",dr+1); jc[0]=inv[0]=1; for(i=1;i<=n;i++) { jc[i]=jc[i-1]; cheng(jc[i],i); inv[i]=power(jc[i],Mod-2); } int ans=0; int val=zuhe(n-1,m); int zeng=9; for(i=n;i>=1;i--) { int now=dr[i]-'0'; cheng(now,val); jia(ans,now); now=zuhe(i-2,m); cheng(now,zeng); jia(val,now); cheng(zeng,10); } printf("%d\n",ans); return 0; }
int zuhe(int x,int y) { if(x<y) return 0; int ans=jc[x]; cheng(ans,inv[y]); cheng(ans,inv[x-y]); return ans; }
int power(int x,int y) { int res=1; while(y) { if(y&1) cheng(res,x); cheng(x,x); y>>=1; } return res; }
int main() { int tempnum[6][LEN]; int input[LEN]; char tempchar; int xiaoshu; int mi; int i, j, numi; int ret[LEN], a[LEN], b[LEN]; memset(input, 0, sizeof(input)); for ( i = 4, xiaoshu = 0; i >= 0; i--) { tempchar = getchar(); if ( tempchar >= '0' && tempchar <= '9' ) { input[i] = tempchar-'0'; } else if (tempchar == '.') { xiaoshu = i+1; i++; } else { i++; } } getchar(); scanf("%d", &mi); printNum(input); printf("^%d %d\n", mi, xiaoshu); memcpy( tempnum[0], input, 7*sizeof(int)); for( i = 0, j = 1; i < 4 && j < mi*2; i++, j<<=2) { cheng(tempnum[i], tempnum[i], tempnum[i+1]); } memset(ret, 0, sizeof(ret)); ret[0] = 1; for ( i = 1, j = 0; i <= 32; i<<=1, j++) { if ( (mi&i)!=0 ) { // printNum(ret); // printf("\n"); // printNum(tempnum[j]); // printf("\n"); cheng(ret, tempnum[j], ret); } } printNum(ret); }
int main() { void cheng(int *,int *,int),gjcheng(int *,int *,int *),chu(int *,int),jia(int *,int *); int i,j,k,n; scanf("%d",&n); for (i=1;i<=n;i++) { a[i][0][0]=1; a[i][0][1]=1; for (j=1;j<=i;j++) cheng(a[i][j],a[i][j-1],i-j+1); } f[0][0]=1; f[0][1]=1; for (i=1;i<=n;i++) { memcpy(f[i],f[i-1],sizeof(f[i-1])); for (j=1;j<=i-1;j++) { cheng(b,a[i-1][j],j+1); gjcheng(b,b,f[i-j-1]); chu(b,2); jia(f[i],b); if (j>1 && (j+1)%3!=0) { gjcheng(b,a[i-1][j],f[i-j-1]); chu(b,2); jia(f[i],b); } } } printf("%d",f[n][f[n][0]]); for (i=f[n][0]-1;i>=1;i--) { j=f[n][i]; printf("%d",j/100); j%=100; printf("%d",j/10); j%=10; printf("%d",j); } printf("\n"); system("pause"); return(0); }
int main() { int choose; list *Dxs1,*Dxs2,*re1,*re2; Dxs1 = csh(); Dxs2 = csh(); re1 = csh(); while(true) { clear(Dxs1); clear(Dxs2); clear(re1); printf("多项式相加请输入---1\n"); printf("多项式相减请输入---2\n"); printf("多项式相乘请输入---3\n"); printf("退出---------------4\n"); scanf("%d",&choose); switch(choose) { case 1: start(Dxs1,Dxs2); jia(Dxs1,Dxs2,re1); printf("两个多项式相加的结果: "); print_dxs(re1); break; case 2: start(Dxs1,Dxs2); jian(Dxs1,Dxs2,re1); printf("两个多项式相减的结果: "); print_dxs(re1); break; case 3: start(Dxs1,Dxs2); cheng(Dxs1,Dxs2,re1); printf("两个多项式相乘的结果: "); print_dxs(re1); break; case 4:exit(1);break; default: printf("错误!\n"); break; } } }
int main() { system("color f0"); shuoming(); short cuo=0; node *tou1=NULL,*tou2=NULL,* result=NULL; while(1) { do { cout<<"请选择功能:"<<endl; cin>>yunsuan; if(!cin) { cout<<"您输入的不是数字,请重新运行程序"<<endl; exit(0); }//if switch(yunsuan) { case 1:cuo=0;jia(tou1,tou2,result);break; case 2:cuo=0;jian(tou1,tou2,result);break; case 3:cuo=0;cheng(tou1,tou2,result);break; case 4:cuo=0;jifen(tou1,result);break; case 5:cuo=0;weifen(tou1,result);break; case 6:cuo=0;qiuzhi(tou1,result);break; case 7:cuo=0;init(tou1);cout<<"输入各项:"<<endl;cout<<"y="<<endl;fuzhi(tou1);outxu(tou1,result);break; default:cuo=1;cout<<"超出功能选择范围,请重新选择:"<<endl; }//switch } while(cuo==1);//do out(result); destory(tou1);destory(tou2);destory(result); short i=0; cout<<"是否清屏(1:是)(0:否):"; cin>>i; if(i==1) {system("cls");shuoming();} else cout<<"*********************"<<endl; }//while return 0; }
int main() { int tempnum[6][LEN]; int input[LEN]; char charinput[LEN]; int charlen; //len of charinput char tempchar; int xiaoshu; int mi; int i, j, numi, k; int ret[LEN], a[LEN], b[LEN]; while(1) { memset(input, 0, sizeof(input)); memset(tempnum, 0, sizeof(tempnum)); memset(charinput, 0, sizeof(charinput)); memset(ret, 0, sizeof(ret)); if ( scanf("%s%d", charinput, &mi) != 2 ) { return 0; } if ( mi == 0 ) { printf("1\n"); continue; } // printf("<%s> %d\n", charinput, mi); for ( i = 5, k = 0, xiaoshu = 0; i >= 0; i--) { if ( charinput[i] > '0' && charinput[i] <= '9' ) { k = 1; } else if ( charinput[i] == '.' ) { break; } xiaoshu += k; } //find from back for ( i = strlen(charinput); ; i--) { if ( charinput[i] == '.' ) { charinput[i] = 0; break; } else if ( charinput[i] > '0' && charinput[i] <= '9' ) { charinput[i+1] = 0; break; } } //printf("B%sB\n", charinput); if ( strlen(charinput) == 0 ) { printf("0\n"); continue; } //find from front for ( i = 0; i < strlen(charinput); i++) { if ( charinput[i] > '0' && charinput[i] <= '9') { break; } } if ( i != 0 ) { for ( j = 0; j < strlen(charinput); j++) { charinput[j] = charinput[i+j]; } } //printf("F%sF\n", charinput); if ( strlen(charinput) == 0 ) { printf("0\n"); continue; } //printf("<%s>\n", charinput); for ( i = strlen(charinput)-1, j = 0; i >= 0; i--) { if ( charinput[i] == '.' ) { continue; } else { input[j] = charinput[i] - '0'; j++; } } //printNum(input); //printf("%d\n", xiaoshu); memcpy( tempnum[0], input, 7*sizeof(int)); for( i = 0, j = 1; i < 4 && j <= mi/2; i++, j<<=1) { cheng(tempnum[i], tempnum[i], tempnum[i+1]); //printf("%d %d ", i, j); //printNum(tempnum[i]); } //printf("%d %d ", i, j); //printNum(tempnum[i]); memset(ret, 0, sizeof(ret)); ret[0] = 1; for ( i = 1, j = 0; i <= mi; i<<=1, j++) { if ( (mi&i)!=0 ) { cheng(ret, tempnum[j], ret); } } // printf(":\n"); //printNum(ret); //printf("%d [", xiaoshu*mi); if ( intlen(ret) > xiaoshu*mi ) { for ( i = intlen(ret) - 1; i >= xiaoshu*mi; i--) { printf("%d", ret[i]); } if ( i >= 0 ) { printf("."); } for ( ; i >= 0; i--) { printf("%d", ret[i]); } printf("\n"); } else { printf("."); for ( i = 0; i < xiaoshu*mi-intlen(ret); i++) { printf("0"); } for ( i = intlen(ret)-1; i >= 0; i--) { printf("%d", ret[i]); } printf("\n"); } // printf("]"); } return 0; }