打印菱形圖案 / 猴子喫桃問題

習題4-9 打印菱形圖案   (15分)

本題要求編寫程序,打印一個高度爲nn的、由“*”組成的正菱形圖案。

輸入格式:

輸入在一行中給出一個正的奇數nn

輸出格式:

輸出由nn行星號“*”組成的菱形,如樣例所示。每個星號後跟一個空格。

輸入樣例:

7

輸出樣例:

      * 
    * * * 
  * * * * * 
* * * * * * * 
  * * * * * 
    * * * 
      *

#include <stdio.h>

int main(){


	int i,j,k,l,n,m;

	printf("輸入奇數:\n");

	scanf("%d", &n);

	for(k=0,m=1,j=n;k<=n/2;k++,j-=2,m+=2){
		for(i=j;i>0;i--)
			printf(" ");
		for(l=m;l>0;l--)
			printf("* ");
		printf("\n");
	}
	
	for(k=n/2+1,j=3,m=n-2;k<n;k++,j+=2,m-=2){
		for(i=j;i>0;i--)
			printf(" ");
		for(l=m;l>0;l--)
			printf("* ");
		printf("\n");
	}
	
	

	return 0;
}

習題4-10 猴子喫桃問題   (15分)

一隻猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個;第二天早上又將剩下的桃子喫掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半加一個。到第NN天早上想再喫時,見只剩下一個桃子了。問:第一天共摘了多少個桃子?

輸入格式:

輸入在一行中給出正整數NN1<N\le 101<N10)。

輸出格式:

在一行中輸出第一天共摘了多少個桃子。

輸入樣例:

3

輸出樣例:

10

#include <stdio.h>

int main(){
	int n, sum=1;

	scanf("%d", &n);

	while(n>1){//共吃了n-1天,還有一天沒喫
		printf("第 %d 天, 還剩 %d 桃\n", n, sum);
		sum = (sum+1)*2;
		n--;
	}

	printf("第一天, 共摘 %d 桃\n", sum);


	return 0;
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章