int main(int argc, char const *argv[]) { int n,m; while (~scanf("%d%d", &n,&m )) { //printf("%lld\n", jiechen(3) ); if(n == 1 ) printf("1\n"); else if(m == 1 ) printf("1\n"); else if(n == 2 ) printf("%d\n", m-1); else if(m == 2 ) printf("%d\n", n-1); else { long long int temp = n+m-4; long long int temp3 = n-2; long long int temp1 = jiechen(temp) / (jiechen(temp-temp3) * jiechen(temp3)); printf("%I64d\n", temp1 % 1000000007); } } }//c(m+n,min(m,n)-2)
float jiechen(int c) //递归函数法求阶乘 { float d; if(c==0||c==1) d=1; else d=jiechen(c-1)*c; return d; }
int main() { double a[10]; double sum; sum = 0; for (int i = 0; i < 10; i++) { sum = 0; for (int j = 0; j <= i; j++) { sum += jiechen(j); } a[i] = sum; } printf("n e\n- -----------\n"); for (int i = 0; i < 10; i++) { if (i == 8) { printf("%d %.9f\n", i, a[i]); continue; } printf("%d %.10g\n",i,a[i]); } getchar(); return 0; }
void output() { char num[50]="0"; // gtk_entry_set_text(GTK_ENTRY(entry),""); strcpy(num,gtk_entry_get_text(GTK_ENTRY(entry))); gtk_entry_append_text(GTK_ENTRY(entry1),num); if(flag==0) flag=1; if(principle==16) { conversion(num,16,10); b=p; } if(principle==10) { b=atof(num); } if(principle==8) { conversion(num,8,10); b=p; } if(principle==2) { conversion(num,2,10); b=p; } if(a==0&&b==0) { gtk_entry_set_text(GTK_ENTRY(entry1),"0="); gtk_entry_set_text(GTK_ENTRY(entry),"0"); } else { switch(method) { case 0: a=a+b; right_output(); break; case 1: a=a-b; right_output(); break; case 2: a=a*b; right_output(); break; case 3: if(b==0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("除数不能为零",-1,NULL,NULL,NULL)); } else { a=a/b; //C语言规定两个整数相除只取商的部分,但一个整数除以浮点数结果仍是浮点数 right_output(); } break; case 4: a=pow(a,b); right_output(); break; case 5: a=((int)a)&((int)b); right_output(); break; case 6: a=((int)a)|((int)b); right_output(); break; case 7: a=((int)a)^((int)b); right_output(); break; case 8: if(b==0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("除数不能为零",-1,NULL,NULL,NULL)); } else { a=((int)a)%((int)b); //C语言规定取余只能用于两个整数之间 right_output(); } break; case 9: a=sin(b); right_output(); break; case 10: a=cos(b); right_output(); break; case 11: a=tan(b); right_output(); break; case 12: a=exp(b); right_output(); break; case 13: a=b*b*b; gtk_entry_append_text(GTK_ENTRY(entry1),"^3"); right_output(); break; case 14: a=b*b; gtk_entry_append_text(GTK_ENTRY(entry1),"^2"); right_output(); break; case 15: if(b<=0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("对数必须为正数",-1,NULL,NULL,NULL)); } else { a=log(b); right_output(); } break; case 16: if(b<=0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("对数必须为正数",-1,NULL,NULL,NULL)); } else { a=log10(b); right_output(); } break; case 17: if(b<0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("阶乘不能为负数",-1,NULL,NULL,NULL)); } else { a=jiechen((int)b); gtk_entry_append_text(GTK_ENTRY(entry1),"!"); right_output(); } break; case 18: if(b==0) { a=0; b=0; method=0; gtk_entry_set_text(GTK_ENTRY(entry),g_locale_to_utf8("除数不能为零",-1,NULL,NULL,NULL)); } else { a=1/b; right_output(); } break; case 19: a=~((int)b); right_output(); break; case 20: a=floor(b); right_output(); break; } gtk_entry_append_text(GTK_ENTRY(entry1),"="); } }