2017年9月6日

C_MM29- 最大質數問題

問題描述:試撰寫一個程式,可輸入一個整數,並找出小於此數的最大質數。
輸入說明輸入一個正整數。
輸出說明:輸出最大質數。

#include <stdio.h>  
#include <stdlib.h>  
  
int main()  
{  
    int x,i,j;  
    int isp=0;  
  
    scanf("%d",&x);  
  
    for(i=x-1;i>0;i--)  
    {  
      for(j=2;j<i;j++)  
      {  
        isp=1;  
        if(i%j==0)  
          {  
            isp=0;  
            break;  
          }  
      }  
  
      if(isp==1)  
      {  
        printf("%d\n",i);  
        break;  
      }  
    }  
     return 0;  
} 

C_MM20-十進位轉十六進位

題目描述:
十進位轉十六進位
輸入說明:
輸入一個十進位的整數
輸出說明:
把輸入的數轉為十六進位輸出
#include <stdio.h>  
#include <stdlib.h>  
  
int main()  
{  
    int num,rem,i=0;  
    int ans[99];  
    char a16[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};  
    scanf("%d",&num);  
  
    while(num>0)  
    {  
      rem=num%16;  
      num=num/16;  
  
      ans[i]=rem;  
      i++;  
    }  
  
    while(i>0)  
    {  
      i--;  
      printf("%c",a16[ans[i]]);  
    }  
    printf("\n");  
    return 0;  
} 

C_MM09-計算 i 次方的值

問題描述:
請撰寫一個程式,計算2的 i次方的值。(提示:利用位移運算元)
輸入說明:
輸入一個正整數,i的值小於31。
輸出說明:
輸出 的i次方的值。
若 i > 31 輸出 "Value of more than 31"


#include <stdio.h>  
#include <stdlib.h>  
  
int main()  
{  
    int i,a,sum=1;  
    scanf("%d",&a);  
    if(a<31)  
        {  
            for(i=0;i<a;i++)  
            {  
                sum=sum*2;  
            }  
            printf("%d\n",sum);  
        }  
    else  
        {  
            printf("Value of more than 31\n");  
        }  
  
    return 0;  
}  

C_MM03-兩數總和

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,sum;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
       sum=a+b;
       printf("%d\n",sum);
    }

    return 0;
}

2017年9月5日

質數判別

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n;
    int i,isp;

    scanf("%d",&n);
    for(i=3;i<n;i++)
    {
      isp=1;
      if(n%i==0)
      {
        isp=0;
        break;
      }
    }
    if(isp==1)
      printf("YES\n");
    else
      printf("NO\n");

    return 0;
}

C_MM072-心得報數

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,N,k,num=0;
    int bob=0,count=0,i,j=0;
    scanf("%d",&n);

    while(num<n)
    {
      scanf("%d",&N);
      scanf("%d",&k);
      int all[N];
      int out[N];

      for(i=0;i<N;i++)
      {
        all[i]=i+1;
        out[i]=0;
      }

      while(bob<N-1)
      {
        if(out[j%N]==0)
          count++;
        if(count==k)
        {
          out[j%N]=1;
          count=0;
          bob++;
        }
        j++;
      }

      while(out[j%N]!=0)//找出下一個未爆0
        j++;
      printf("%d\n",all[j%N]);

      j=0;count=0;bob=0;
      num++;
    }


    return 0;
}