Chapter 2-1 閏年和素數兩個重點演算法 程式編寫

2020-08-08 20:21:59

程式=數據結構+演算法

演算法:解決問題的方法步驟

這一章的兩個重點問題:閏年和素數

  • 設計一個程式判斷這一年是閏年還是平年

先分析閏年的條件(滿足下面 下麪其一):

  1. 能被4整除,不能被100整除
  2. 能被400整除

方法一:(繁瑣,多個條件一步步判斷)

要特別注意花括號的位置,判斷流程,寫法可以有多種

#include<stdio.h>
int main()
{
	int year;
	printf("請輸入年份(例如2020):\n");
	scanf("%d",&year);
	if(year%4==0)
	{	if(year%100!=0)
			printf("這一年是閏年\n"); 
		if(year%400==0)
			printf("這一年是閏年\n");}
	else
			printf("這一年是平年\n");
		
	return 0;
}

方法二:(簡潔,一次性判斷)

#include<stdio.h>
int main()
{
	int year;
	printf("請輸入年份(例如2020):\n");
	scanf("%d",&year);
	if(year%4==0&&year%100!=0||year%400==0)
			printf("這一年是閏年\n"); 
	else
			printf("這一年是平年\n");
	return 0;
}
  •  設計一個程式判斷一個數是不是素數

什麼是素數:除了1和它本身,不能被其他任何整數整除

#include<stdio.h>
#include<math.h>
int main()
{
	int number,i,k;
	printf("請輸入要判斷的整數:\n");
	scanf("%d",&number);
	k=(int)sqrt(number);
	for(i=2;i<=k;i++)
		if(number%i==0)
			break;
	if(i>k)
		printf("這個數是素數\n");
	else
		printf("這個數不是素數\n");
	return 0;
}
  1. 要有一個頭檔案math包含sqrt
  2. 只需要逐次除以2—根號下number即可判斷,再往後是多餘的