用c语言打出如图的九九表打印版

如何只用一次循环输出完整的九九表?_问答_ThinkSAAS
如何只用一次循环输出完整的九九表?
如何只用一次循环输出完整的九九表?
只用一次循环输出如下的内容1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
这算是初级的算法题么 ... 很久不写极限简单的代码 ... 我试试看好了 ...&?php
for ( $x = 1, $y = 1; $y & 10; ++ $x )
echo "{$x}x{$y}=", $x * $y, ' ',
( $x === $y ) && ( print( PHP_EOL ) ) && ++ $y && $x = 0;基本原理很简单 ...因为只能使用一次循环 ... 所以我们需要在 for 循环内部控制循环的结束 ...虽然代码看起来比两次循环要少 ... 但事实上时间复杂度是一样的 ...其实吧 ... 生成乘法表的方法有很多种 ... 甚至不需要循环都可以解决 ...使用单次循环解决的方法也不仅仅只有我这一种 ... 我能想到的至少还有两三种 ...我写这一个版本 ... 其他的留给别人好啦 ...没有实现不了 ... 关键点就是在创意恩恩 ...
C语言void prt_table()
for (i = 1, j = 1; i & 10 && j & 10;) {
printf("%d*%d=%2d ", i, j, i * j);
if (i == j) {
else if (i & j) {
puts [*1..9].product([*1..9]).map { |x, y| %Q(#{y} * #{x} = #{x*y}t#{"n" if x==y}) if x&=y }.join("")ruby 1.9.3站长就不舍得支持下markdown吗
来个clojure的one-liner:(dorun (for [o (range 1 10) i (range 1 (+ o 1))] (do (print (str o "x" i "=" (* o i) " ")) (when (= i o) (println)))))在repl中的输出:user=& (dorun (for [o (range 1 10) i (range 1 (+ o 1))] (do (print (str o "x" i "=" (* o i) " ")) (when (= i o) (println)))))
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
nil虽然我没看出来在这个很自然的“2层循环”的逻辑中非得用“一次循环”有什么好处(省计算?没有啊?),就当蛋疼吧,来个一次循环的:(loop [o 1 i 1]
(print (str o "x" i "=" (* o i) " "))
(cond (and (= o i) (= o 9)) nil
(= o i) (do
(recur (+ 1 o) 1))
true (recur o (+ 1 i)))))repl中输出:user=& (loop [o 1 i 1]
#_=& (print (str o "x" i "=" (* o i) " "))
#_=& (cond (and (= o i) (= o 9)) nil
#_=& (= o i) (do
#_=& (println)
#_=& (recur (+ 1 o) 1))
#_=& true (recur o (+ 1 i)))))
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 nil
python中的代码:print ('n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))或者:for i in range(1,10):
for j in range(1,i+1):
print (str(j),'*',str(i),'=',i*j,end=' ')
print ('n')
(arr = ([*1..9].map{|i| Array.new(i,i).zip([*1..i])}.flatten)).each_index{|i|puts "#{arr[i]}*#{arr[i+1]}=#{arr[i]*arr[i+1]}" if i%2 == 0}Ruby1.9.3测试通过,一层循环,一行代码,换行这种小事情就不要计较了
有java么~~我来加个java的~for (int i = 1, j = 1; i & 10 && j & 0; i++) {
if (j != 10) {
System.out.print(i + "x" + j + "=" + (i * j) + "t");
if (i == j) {
System.out.println("");
public static void main(String[] args){
print(1,1);
public static void print(int i,int j){
if(i&9 || j&9 || j&i)
System.out.println(i+"*"+j+"="+(i*j));
print(i+1,1);
System.out.print(i+"*"+j+"="+(i*j)+" ");
print(i,j+1);
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
(-&& (range 1 10)
(fn [n] (map #(format "%sx%s=%s" %1 %2 (* %1 %2))
(range 1 (inc n))
(repeat n))))
flatten)Clojure,换行神马的就不要纠结了。
我是来凑热闹的!void print(int x,int y)
printf("%d x %d = %d ",x,y,x*y);
fflush(stdout);
if (x == 9 && y == 9)
if (x == y) {
putchar('n');
return print(1,++y);
return print(++x,y);
添加你想要问的问题
PHP开发框架
开发工具/编程工具
服务器环境大九九口诀表,小九九口诀表,九九乘法表?
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;打印“九九表”_C语言中文网
&&/&&&&/&&
& & & & 1*1=1&
&&&&&&&&1*2=2 2*2=4&
&&&&&&&&1*3=3 2*3=6 3*3=9&
&&&&&&&&1*4=4 2*4=8 3*4=12 4*4=16&
&&&&&&&&1*5=5 2*5=10 3*5=15 4*5=20 5*5=25&
&&&&&&&&1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36&
&&&&&&&&1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49&
&&&&&&&&1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64&
&&&&&&&&1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81&
&&&&&&&&分析:&
&&&&&&&&① 这需要编写一个循环结构的程序。&
&&&&&&&&② 需要循环嵌套。外循环控制打印第几行,内循环控制打印某一行的若干个等式。&
&&&&&&&&程序如下:&
&&&&&&&&main( )&
&&&&&&&&{ int m,n;&
&&&&&&&& for(m=1;m&=9;m++)&
&&&&&&&& { for (n=1;n&=m;n++)&
&&&&&&&& printf(&%1d*%1d=%-4d&,m,n,m*n);&
&&&&&&&& printf(&\n&);&
&&&&&&&& }&
&&&&&&&&}&
&&&&&&&&请思考:请你用别的编程方法再解此题。
推荐文章 TOP10}

我要回帖

更多关于 九九表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信