1. 程式人生 > 實用技巧 >BZOJ-2351 [BeiJing2011]Matrix(矩陣雜湊)

BZOJ-2351 [BeiJing2011]Matrix(矩陣雜湊)

實驗一

#include <math.h> 
#include <stdio.h> 
int main() 
{ 
    float a, b, c, x1, x2; 
    float delta, real, imag; 
    printf("Enter a, b, c: "); 
    while(scanf("%f%f%f", &a, &b, &c) != EOF) 
    { 
        if(a == 0) 
            printf("not quadratic equation.\n\n"); 
            
else { delta = b*b - 4*a*c; if(delta >= 0) { x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf("x1 = %.2f, x2 = %.2f\n\n", x1, x2); }
else { real = -b/(2*a); imag = sqrt(-delta) / (2*a); printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n\n", real, imag, real, imag); } } printf("Enter a, b, c: "); } return
0; }

實驗二

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
#define N 5 
int main() 
{ 
    int x, n; 
    srand(time(0)); // 以當前系統時間作為隨機種子 
    n = 0; 
    do {n++; 
    x = rand()%10; // 生成一個0~9之間的隨機整數 
    printf("%3d", x); 
    }while(n<N); 
    
    printf("\n"); 
return 0; 
}

實驗三

#include<stdio.h>
#include<math.h>
int main() 
{
    int a,i,m,k=0; 
    for(a=100;a<200;a++)
    {
        m=sqrt(a);
        for(i=2;i<=m+1;i++)
        {
            if (a%i==0)
            break;
        }
        if(i>m)
            {
            k+=1;
            if(k%4==0)
                printf("%6d\n",a);
            else
                printf("%6d",a);
            }
    }
    
    printf("\n100到兩百之間共有");
    printf("%d",k);
    printf("個素數"); 
    return 0; 
}

實驗四

#include<stdio.h>
main(){
    char s[64];
    int j,k;
    printf("\n Enter a number:");
    gets(s); 
    for(j=k=0;s[j]!='\0';j++)
    
        if(s[j]%2!=0)
            s[k++]=s[j];
            s[k]='\0';
            printf("\nnew number is:"); 
            printf("%s",s); 
    
    return 0;
}

思路

用陣列給每個位上的數字編號,依次檢驗是否為奇數,如果為偶數則後面位數字依次向前挪一項

#include<stdio.h>
int main() 
{
    int n,i,sign;
    double s=0,k;
    printf("Enter n(1~10):");
    while((scanf("%d",&n)!=EOF)&&(1<=n&&10>=n)){
    
    k=1;
    sign=1;
            for(i=1;i<=n;i++)    
            {
                k=k*i;        
                s=s+sign*(1.0/k);
                sign=sign*(-1);
            
            }
            
            printf("n=%d,s=%lf\n\n",n,s);
            printf("Enter n(1~10):");
}
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    printf("猜猜那一天會是你的lucky day\n\n開始咯,你有三次機會,猜吧:\n"); 
    int a,b,i;
    srand(time(0));
    a=rand()%31;
    
    for(i=1;i<=3;i++)
    {
        if(i>=2)
        {
            printf("再猜一次吧:");
        }
        scanf("%d",&b);
        if(b<a)
        {
            printf("你猜的日期早了,lucky day還沒到呢:)\n\n");
        }
        if(b>a)
        {
            printf("你猜的日期晚了,lucky day悄悄溜到前面去啦:)\n\n");
        }
        if(b==a)
        {
            printf("Bingo~");
            break;
        }
        if(i==3)
        {
            printf("次數用完啦,悄悄告訴你,你的lucky day是%d號",a);
        }
    }
    return 0;
}