是算法竞赛选手吗?
打表法一般是这么用的:
有些题的输入输出都很简单,比如输入只有两个整数,输出一个整数这种。但是暴力肯定会超时。这时候就先暴力计算出来比如前100项的答案,列成表格人眼找规律,然后根据自己(猜的)规律直接写个程序交上去如果AC了就猜对了,wrong answer了就再想办法。
简单来说可以用数组来实现,
例如定义3X3表格char A[33],A[00]~A[03]存放表格属性,剩下的存放数据
举个例子抽象出来就是:姓名(A00) 性别(A01) 年龄(A02)
小王(A10) 男(A11) 30(A12)
大王(A20) 男(A21) 30(A22)
#include <stdioh>
int main()
{
float score[2][2] = {0};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
scanf("%f", &score[i][j]);
}
}
printf("----------------------\n");
printf("序号语文 数学 总成绩\n");
printf("----------------------\n");
for (int i = 0; i < 2; i++)
{
printf("%-4d%-61f%-61f%61f\n", i + 1, score[i][0], score[i][1], score[i][0] + score[i][1]);
}
return 0;
}
//测试输出:
//800
//905
//905
//705
//----------------------
//序号语文 数学 总成绩
//----------------------
//1 800 905 1705
//2 905 705 1610
八进制和十六进制可以直接用%o和%x输出。
二进制这里自己弄了下。
#include <stdioh>int main(int argc, char argv[])
{
int i, j, n;
char two[9] = {0};
for(i = 1; i <= 255; i++)
{
/十进制/
printf("%4d",i);
/二进制/
for(j=7, n=i; j>=0; j--, n>>=1)
{
two[j]=(n & 1) + '0';
}
printf("%9s", two);
/八进制/
printf("%4o", i);
/十六进制/
printf("%3x\n", i);
}
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)