SiteMap

ラベル programming の投稿を表示しています。 すべての投稿を表示
ラベル programming の投稿を表示しています。 すべての投稿を表示

2012年2月6日月曜日

印出V型

印出V型
012345678
*1111111*
1*11111*
11*111*
111*1*
1111*

這個V型, 它的長(從上到下)用掉5行, 寬(從左到右)用掉9個字元
想要印出來, 不是從第一行印出個斜線到第5行, 然後再印回去. 
這是不可能的 (汗. 
ps.1是方便計算用
假設在for-loop裡面, 兩個頂端的點, 第一個是1 那麼另一個為9,
這說明了什麼, 程式在第一行第一個字元的位置印出星號, * ,
然後下一個* 在第九個字元的位置印出, 中間相差8 個字元,
第二行在第二個字元的位置印出* 第8 個字元印出另一個* ,相差6,
以下列出關係

第一個*
|   中間空格
|   |   第二個*
1 + 8   9
2 + 6   8
3 + 4   7
4 + 2   6
5 + 0   5 

跟印出直角三角形之前一樣, 如果把圖形座標化的話, 右上角為(0,0), 
兩個頂點的座標為
(0,0), (0,8)
(1,1), (1,7)
(2,2), (2,6)
....
(4,4)

這樣大概可以看出規律了, 首先每行的第一個星號(*), 會在x=y的地方
印出來, 下一個星號(*)會在x+y=8的地方印出, 其他地方則用空白填滿. 

---------------------------------------------------------------
public class Example {
	public static void main(String[] argv) {
		for (int y = 0; y < 5; y++) {
			for (int x = 0; x < 9; x++)
				if (x == y || ((x + y == 8))) {
					System.out.print("*");
				} else {
					System.out.print(" ");
				}
			System.out.println();
		}
	}
}
----------------------------------------------------------------
第一個for-loop負責印出斷行, 第二個在x=y以及x=y=8的時候會印出星號(*),
否則則印出空格.

印出圖形

印出星號 print star (*)
最簡單的直角三角形 (Right Triangle)
http://mathworld.wolfram.com/RightTriangle.html
=================================================
Result
*
**
***
-------------------------------------------------------------
1.
public class Example {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
=================================================
continue...

2012年1月3日火曜日

C语言转义字符和格式控制符参考

C语言转义字符和格式控制符参考

 From


第四張 順序程式設計
http://wenku.baidu.com/view/2f1b96116c175f0e7cd13793.html

2012年1月2日月曜日

printf 的列印格式、控制字元、修飾子

列印格式   輸出敘述
%c 字元
%s 字串
%d 十進位整數
%u 無號十進位整數
%o 無號八進位整數
%x 無號十六進位整數,以 0 ~ f 表示
%X 無號十六進位整數,以 0 ~ F 表示
%f 浮點數,小數點型式
%e 浮點數,指數 e 型式
%E 浮點數,指數 E 型式
%g 印出 %f 與 %e 較短者
%G 印出 %F 與 %E 較短者
%p 指標位址
%% 印出百分比符號


控制字元   功能
\a 警告音
\b 倒退
\f 換頁
\n 換行
\r 歸位
\t 跳格
\' 印出單引號
\" 印申雙引號
\\ 反斜線
\/ 斜線
\d 八進位 ASCII 碼
\x 十六進位 ASCII 碼



修飾子   功能 範例
- 向左對齊 %-3d
+ 將數值的正負號顯示出來 %+5d
空白 數值為正值時,留一格空白;為負值時,顯示負號 % 6f
將固定欄位長度的數值前空白處填上 0;
與 - 修飾子同時使用時,此修飾子無效
%07.2f
數字 欄位長度,當數值的位數大於所定的欄位長度時,欄位會自動加寬它的長度   %9d
. 數值以 %e, %E, %f 型式表示時,決定小數點後所要顯示的位數 %4.3f
h 表示 short int 或是 unsigned short int %5h
l 表示 long int 或是 unsigned long int %lu
%7.2f 顯示浮點數, 小數點前顯示7位數, 小數點後顯示2位數 v= 20.52

From:
http://matis.pixnet.net/blog/post/22918475

99乘法表@Java

public class Test99
{
    public static void main(String[] args)
    {
        //print the line
        for (int i = 0 ; i < 62 ; i++)
        {
            System.out.printf("-");
        }
        System.out.println("\n");
        //out loop
        for (int i=1 ; i < 10 ; i++)
        {
            //inner loop
            for (int j = 1 ; j < 10 ; j++)
            {
                System.out.printf ("%1dx%1d=%2d ",i,j,i*j);
            }
            System.out.println ("\n");
        }
       
        //print the line
        for (int i = 0 ; i < 62 ; i++)
        {
            System.out.printf("-");
        }
    }
}