Beispiel #1
0
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)
Beispiel #2
0
float jiechen(int c)    //递归函数法求阶乘
{
    float d;
    if(c==0||c==1)  d=1;
    else d=jiechen(c-1)*c;
    return d;
}
Beispiel #3
0
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;
}
Beispiel #4
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),"=");
        }
    
}