• 2129阅读
  • 5回复

[其他杂项]【社区题目】广海社区编程大赛 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2014-05-10

编程乐园的人气貌似不强,难道大家无会编程的?  

希望各大高手,新手通通出马.尽现你的才华哦.  

PS:该帖来自编程乐园的转向,所有权在编程乐园,应当采用编程乐园的规则,希望大家不要放水  


比赛内容:【打印99乘法口诀】(简单吧)  

要求:用最短的,最奇怪,或着是最有特色代码,语言不限,禁抄袭  

评奖:到50帖时  

奖励设置:  

一等奖 (1名)100论坛币    50威望  

二等奖(2名)80论坛币  30威望  

三等奖(3名)50论坛币   20威望  

优秀奖(若干)10论坛币   5威望  

还会机会获得勋章哦!  



先来个我的 ~~

  

复制代码
  1. @echo   off
  2. color 0a
  3. set a=0
  4. :s
  5. set b=0
  6. set /a a+=1
  7. :d
  8. set /a b+=1
  9. set /a c=%a%*%b%
  10. echo %a% 乘 %b% 得 %c%
  11. if not %b%==9 (goto d)
  12. echo.
  13. if not %a%==9 (goto s)
  14. echo.
  15. pause



本帖提到的人: @echo
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线啊冲

只看该作者 沙发  发表于: 2014-05-10
总结一下我发的几种:
1、将乘法表直接写入字符串中,然后输出(2楼);
2、递归(2种,一种使用专门的递归函数,一种直接用main函数做递归函数)(2楼)
3、利用类的构造函数或析构函数中输出(2楼)
4、只用一个循环实现乘法表的打印(2楼)
5、利用时钟周期事件输出(同样的,也可以使用一些回调函数、事件处理函数来做)(16楼)
6、定义一个宏来实现(20楼)
7、类似于函数式编程的方法(21楼)
8、利用boost/lambda/for_loop实现(53楼)


预留位置。
并且评判一下版主:显示效果不好,如果像小学学的那种表格形式的该更好   

备注:我使用的是VC2005
====================================
我来放个纯属娱乐的:

复制代码
  1. #include "stdafx.h"
  2. #include <iostream>
  3. using namespace std;
  4. int _tmain(int argc, _TCHAR* argv[])
  5. {
  6.     char* a = "1*1=1\t1*2=2\t1*3=3\t1*4=4\t1*5=5\t1*6=6\t1*7=7\t1*8=8\t1*9=9\n"
  7.         "\t2*2=4\t2*3=6\t2*4=8\t2*5=10\t2*6=12\t2*7=14\t2*8=16\t2*9=18\n"
  8.         "\t\t3*3=9\t3*4=12\t3*5=15\t3*6=18\t3*7=21\t3*8=24\t3*9=27\n"
  9.         "\t\t\t4*4=16\t4*5=20\t4*6=24\t4*7=28\t4*8=32\t4*9=36\n"
  10.         "\t\t\t\t5*5=25\t5*6=30\t5*7=35\t5*8=40\t5*9=45\n"
  11.         "\t\t\t\t\t6*6=36\t6*7=42\t6*8=48\t6*9=54\n"
  12.         "\t\t\t\t\t\t7*7=49\t7*8=56\t7*9=63\n"
  13.         "\t\t\t\t\t\t\t8*8=64\t8*9=72\n"
  14.         "\t\t\t\t\t\t\t\t9*9=81\n";
  15.     cout << "下面输出99乘法表:" << endl << a;
  16.     cin.get();
  17.     return 0;
  18. }




============================================
再来个递归的玩玩:

复制代码
  1. void print99(int n,int m);
  2. int _tmain(int argc, _TCHAR* argv[])
  3. {
  4.     print99(1,1);
  5.     return 0;
  6. }
  7. void print99(int n,int m)
  8. {
  9.     if (m<=9)
  10.     {
  11.         printf("%d*%d=%d\t",n,m,n*m);
  12.         print99(n,m+1);
  13.     }
  14.     else if (n<9)
  15.     {
  16.         printf("\n");
  17.         print99(n+1,1);
  18.     }
  19.     else
  20.     {
  21.         printf("\n");
  22.         getchar();
  23.     }
  24. }


用递归甚至可以这样:
复制代码
  1. int _tmain(int argc, _TCHAR* argv[])
  2. {
  3.     (argc <= 81) && ( (argc%9) ? printf("%d*%d=%d\t",(argc/9)+1,(argc%9),((argc/9)+1)*((argc%9))) : printf("%d*9=%d\n",(argc/9),((argc/9))*9) ) && _tmain(++argc, argv);
  4.     return 0;
  5. }


或者干脆连return 0;都不要了:
复制代码
  1. int _tmain(int argc, _TCHAR* argv[])
  2. {
  3.     return (argc <= 81) && ( (argc%9) ? printf("%d*%d=%d\t",(argc/9)+1,(argc%9),((argc/9)+1)*((argc%9))) : printf("%d*9=%d\n",(argc/9),((argc/9))*9) ) && _tmain(++argc, argv);
  4. }




=====================================
继续,利用类的构造函数:

复制代码
  1. class CPrint99A
  2. {
  3. public:
  4.     static int count;
  5.     CPrint99A()
  6.     {
  7.         (count%9) ? printf("%d*%d=%d\t",(count/9)+1,(count%9),((count/9)+1)*((count%9))) : printf("%d*9=%d\n",(count/9),((count/9))*9);
  8.         count++;
  9.     }
  10.     ~CPrint99A()
  11.     {
  12.         ;
  13.     }
  14. protected:
  15. private:
  16. };
  17. int CPrint99A::count = 1;
  18. int _tmain(int argc, _TCHAR* argv[])
  19. {
  20.     CPrint99A Print99A[81];
  21.     cin.get();
  22.     return 0;
  23. }


很自然的,我们也可以这样使用单个循环实现:
复制代码
  1. int _tmain(int argc, _TCHAR* argv[])
  2. {
  3.     for (int i=1; i<=81; i++)
  4.     {
  5.         (i%9) ? printf("%d*%d=%d\t",(i/9)+1,(i%9),((i/9)+1)*((i%9))) : printf("%d*9=%d\n",(i/9),((i/9))*9);
  6.     }
  7.     getchar();
  8.     return 0;
  9. }


善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线李侃

只看该作者 板凳  发表于: 2014-05-10
纯print的亮了,第一个是.BAT?
技术为王,我辈在路上
离线那个谁

只看该作者 地板  发表于: 2014-05-12
     冲哥也开始写程序了
离线guke_

只看该作者 4楼 发表于: 2017-08-26
      
离线aandok

只看该作者 5楼 发表于: 02-18

  |Title = "信?,A2,""
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个