poj 1316 Self Numbers

用abcd的四重循环必然是最简单的最直接的想法,而且9^4次循环并不大,完全可以接受

a+b+c+d+1000a+100b+10c+d = 1001a+101b+11c+2d

here is my code:

#include <stdio.h>

bool mark[10002]={false};

int main()
{
	int a,b,c,d,i;

	for(a=0;a<=9;a++)
		for(b=0;b<=9;b++)
			for(c=0;c<=9;c++)
				for(d=0;d<=9;d++)
				{
					i=1001*a+101*b+11*c+2*d;
					mark[i]=true;
				}

	for(i=1;i<10000;i++)
    {
		if(!mark[i])
			printf("%d\n",i);
    }

	return 0;
}
时间: 2024-08-03 14:04:53

poj 1316 Self Numbers的相关文章

poj 1338 Ugly Numbers【终极打表】

这道题我用的是终极打表的方法.......... 哈哈哈,为了避免代码太长刷屏,把我自己的代码放到最后...这道题当我想到这种方法的时候哈哈大笑... 这题倒是让我变得很会用 word 的替换...回车是^p,先把回车都去掉,然后再把所有的","改成",^p".原因是开始的回车有把很多数字隔开,这样编译器就没法识别了:后一个因为编译器一行最多2048个字符 大家注意亮点[代码长度]: 我自己的代码效率很低,所以想到这种方法...网上的结题报告多用的是,指针法 我的低

POJ题目分类

初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      (4)递推.      (5)构造法.(poj3295)      (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:      (1)图的深度优先遍历和广度优先遍历.      (2)最短路径算法(dijkstra,bellman-ford

poj分类

初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      (4)递推.      (5)构造法.(poj3295)      (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:      (1)图的深度优先遍历和广度优先遍历.      (2)最短路径算法(dijkstra,bellman-ford

poj 题型分类

主流算法: 1.搜索 //回溯 2.DP(动态规划) 3.贪心 4.图论 //Dijkstra.最小生成树.网络流 5.数论 //解模线性方程 6.计算几何 //凸壳.同等安置矩形的并的面积与周长 7.组合数学 //Polya定理 8.模拟 9.数据结构 //并查集.堆 10.博弈论 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380, 1318, 1877, 1928, 1971,

hduoj题目分类

基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093.1094.1095.1096.1097.1098.1106.1108.1157.1163.1164.1170.1194.1196.1197.1201.1202.1205.1219.1234.1235.1236.1248.1

ACM练级

一般要做到50行以内的程序不用调试.100行以内的二分钟内调试成功.acm主要是考算法的 ,主要时间是花在思考算法上,不是花在写程序与debug上.  下面给个计划你练练: 第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来.  1.最短路(Floyd.Dijstra,BellmanFord)  2.最小生成树(先写个prim,kruscal要用并查集,不好写)  3.大数(

poj 1504 Adding Reversed Numbers【反转数字】

先写了一个反转数的代码,反转函数输入是一个字符串,返回值是一个 int64 型,但是发现这样还是不行,需要输入和输出一样的反转函数才可以.要么输入字符串,返回字符串:要么输入整数,返回整数 之后又改变方法,在纸上画画就知道. 比如 26500 7657 ,反转相加就是652+7657=8129,再反转就是 9281 ,跟直接一位位相加 2+7=9,6+6=2,5+5+1=1,0+7+1=8 相对的位数一样,这就意味着不必一个个数翻来翻去了... 再如 26500 8657,反转相加就是652+8

poj 2739 Sum of Consecutive Prime Numbers【素数筛】

我觉得这题的数据应该有些刁钻,一共至少提交了五次,一直是WA,无语了......用一个result数组存素数硬是不对.后来就算了,改用直接判断(法二),继续WA,后来发现是MAXN至少应为10002(被数据坑了),终于A掉了...... 后来继续改法一多次,任然WA,一直不清楚原因. 继续思考发现有一个很隐蔽的问题就是我后来用到   if(result[i]>n) break;    而result数组中 10000以内 最后一个素数是 9997,后面全是0了.这样无法停止,所以必须加一个大数作

poj 1733 Parity game:带权并查集

链接: http://poj.org/problem?id=1733 题目: Description Now and then you play the following game with your friend. Your friend writes down a sequence consisting of zeroes and ones. You choose a continuous subsequence (for example the subsequence from the