算法
赵银龙_
无为
展开
-
leetcode:去除石头
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the原创 2017-07-01 22:07:36 · 295 阅读 · 0 评论 -
三种求子集的问题
#includeint main(){ int a[4] = {1,2,3,4}; int b[4] = {0}; int postion = 0; int i,j; while(1) { for(i = 0;i<4&&b[i];b[i] = 0,i++) ; if(i >= 4) break; b[i] = 1; for(j = 0;j<4;j++)原创 2017-06-18 18:27:51 · 1445 阅读 · 0 评论 -
螺旋队列
#include#define max(a,b) (a<b?b:a)#define abs(a) (a>0?a:(-a))int foo(int x,int y){ int t = max(abs(x),abs(y)); int u = t + t; int v = u - 1; v = v*v+u; if(x == -t) v += u+t-y; else if(y ==原创 2017-06-18 13:59:10 · 230 阅读 · 0 评论 -
不使用%和/,判断一个整数是否能被3整除
#includeint main(){ int n; int s; scanf("%d",&n); while(n>0) { s = n&1; n>>=1; n = n-s; } if(n == 0) { printf("yes"); } else { printf("no"); }}3是一个比较特殊的数,任何一个整数和3相乘就等于这个整数与原创 2017-06-18 13:57:14 · 724 阅读 · 0 评论 -
有一个整数n,将n分解成若干个整数之和,问如何分解能使这些数的乘积最大,输出这个乘积m
//有一个整数n,将n分解成若干个整数之和,问如何分解能使这些数的乘积最大,输出这个乘积m#include#define Max 128int a[Max];int max(int a,int b){ return a>b?a:b;}int main(){ int i,j,value,n; scanf("%d",&n); for(i = 1;i<=n;i++) { v原创 2017-06-09 21:43:08 · 2671 阅读 · 3 评论 -
ACM 1220
#include#define Max 128int a[Max][Max];int max(int a,int b){ return a>b?a:b;}int main(){ int n,i,j; scanf("%d",&n); for(i = 1;i<=n;i++) { for(j = 1;j<=i;j++) { scanf("%d",&a[i][j]);原创 2017-06-09 21:42:20 · 187 阅读 · 0 评论 -
数组上下排算法
根据上排给出十个数,在其下排填出对应的十个数要求下排每个数都是先前上排那十个数在下排出现的次数。上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】举一个例子,数值: 0,1,2,3,4,5,6,7,8,9分配: 6,2,1,0,0,0,1,0,0,00在下排出现了6次,1在下排出现了2次,2在下排出现了1次,3在下排出现了0次….以此类推.原创 2017-06-09 21:41:33 · 242 阅读 · 0 评论 -
c语言分离链接法
#include#include#include#includetypedef struct value{ int n; struct value *next;}value;void hash(value *head,int n,int size);void find(value *head);void find(value *head){ value *p; int原创 2017-05-19 16:58:48 · 347 阅读 · 0 评论 -
短路运算
#includeint sum(int n){ int s = 0; n==0||(s = (sum(n-1)+n)); return s;}int main(){ printf("%d",sum(100)); return 0;}问题描述: 求1+2+3+。。。+你,要求不能使用乘法、for、while、if、else、switch、case等关键字及条件判原创 2017-06-20 21:03:20 · 284 阅读 · 0 评论 -
剑指offer 二叉树重建
问题描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复的数字。假如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序序列{4,7,2,1,5,3,8,6},则重建二叉树并返回 #include#includetypedef struct Node{ struct Node *left; struct Node原创 2017-06-20 23:36:46 · 242 阅读 · 0 评论 -
leetcode500
int inRow(char *row, int length, char c) { for (int i = 0; i < length; i++) { int a = row[i]; if (a == c || (a == c + 32)) { return 1; } } return 0;}原创 2017-06-28 19:30:18 · 279 阅读 · 0 评论 -
大数字相加
#includeint main(){ char str1[1000]; char str2[1000]; char result[1001]; int i,j,k,sum; int index = 0,t; gets(str1); gets(str2); i = strlen(str1) - 1; j = strlen(str2) - 1; k = i>j?i:j;原创 2017-06-18 20:07:46 · 217 阅读 · 0 评论