Blog 日志库
2008-08-21 灰色和黑色的泰迪小精灵欣赏呀
雪雪114的Blog...
2008-08-21 山东济南出售哈士奇宝贝
山东济南哈士奇宝宝

济南出售小哈济南地区出售自家繁殖的哈宝宝,身体健康、结实,有着纯正的血统,性格非常的顽皮,喜欢玩耍,特别喜欢和人玩,蓝色眼睛非常的精神,让您看见就会不由自主的爱上它,毛发松软、浓密,骨量极佳,颜色标准,香宾色 烟灰色都有 四肢结实、有力,已经做过驱虫和疫苗,有喜欢的朋友就联系我,加我QQ可以看照片 |
2008-08-21 [推荐]勇敢者的征途(浙东大峡谷
末期自恋症


















2008-08-21 名仕庄园游玩照
史宾格之家
2008-08-21 四大因素决定后市 仓位50%
天利证券
|
周三A 股市场爆发井喷行情。早盘股指受美股影响小幅低开,并顺势下探,但是随着以中信证券为首的券商股整体走强,激发了市场压抑已久的反弹激情,个股纷纷强劲上扬,股指势如破竹一举收复2400 点,2500 点两大关口。尾市报收于2523 点,涨178 点,涨幅7.63%,创出今年以来的第三大单日涨幅,成交610 亿,较昨日明显放大。 从盘面观察,沪市前二十大权重股平均上涨8.51%,海通证券、中信证券、中国太保等均封住涨停。整体来看,今天两市仅有1 只个股下跌,而涨停的非ST 类股超过300 只,涨幅超过7%的个股更是多达1216 只,市场出现了极为罕见的井喷奇景。从行业指数的表现来看,各大行业全线上涨超过4%,其中地产、金融、传播三个行业均涨逾9%。 对今日的井喷行情,笔者认为启示如下: 1、 存在主力资金进场抢筹的可能。在A 股市场长期、大幅暴跌之后,A 股的估值水平全方位被低估,而在朦胧利好传闻的刺激下,有可能使各方主力强筹。今日市场的暴涨,成交量的大幅上升,权重股的大涨说明了这一点。 2、 上一周市场有四天收出缩量阳线正表明大盘离底不远,但本周一大盘大跌,创出2284 点的新低,完美的构建了空头陷阱。 3、 近期权重股的表现。近期权重股较为抗跌,银行、保险股走势强劲,今日这几个板块更是全面爆发,封杀了大盘的下跌空间,并为大盘的爆发立下汗马功劳。 4、 市场传言“限售股要通过券商二次发售”,这对券商板块整体刺激很大。早盘券商股即有异动,中信证券、宏源证券直达涨停,其中中信证券封单更是达到3000 万股。 今日大盘收出巨阳,可能较为清楚的表明了2284 点低点基本确立,但后续如何发展,行情高度如何,可能要由以下因素决定: 1、消息面。如果传闻消息能得以兑现,那么本轮反弹有可能就是中级反弹。 2、成交量。短线的成交量必须维持500 亿左右的水平,如果量能能稳步、温和放大,则行情可能走的更远。如果短线市场急剧放量,并快速上攻,行情的力度和高度将大打折扣。 3、由于近期宝钢和中信限售股平稳上市,未对市场整体造成冲击。由于前期市场的深幅下跌,公司股价较低,反而没有造成大股东抛售,但如果随着股价的上涨,在利益驱动下,造成大股东抛售,这种可能性是存在的。 从盘面上看,市场最危急的时刻似乎已经度过,我们似乎也已安然度过八月限售的洪峰,投资者可采取较为积极的态度,但随时提高警惕,短线涨幅较大的个股可高抛,仓位可控制在50%左右。 |
2008-08-20 循环移位
大地勇士X
题目描述:
给你一个字符串"abcdefg",循环左移两位得到"cdefgab",
循环右移两位得到"fgabcde"
输入:
多组测试数据,每组一行,第一个是int范围内的整数n,
表示要右移的位数,如果n是负数则表示要左移。接着后面
是一个串长小于10000000的字符串。
最后遇到EOF标志的时候结束。
输出:
输出移位后的字符串
样例输入:
2 abcdefg
-2 abcdefg
样例输出:
fgabcde
cdefgab
难度:for beginner
#include<stdio.h>
#include<stdlib.h>
void left_move(char str[],int m)
{
int i;
char temp;
temp=str[0];
for(i=0;i<m-1;i++)
str[i]=str[i+1];
str[i]=temp;
str[m]='\0';
}
void right_move(char str[],int m)
{
int i;
char temp;
temp=str[m-1];
for(i=m-1;i>=0;i--)
str=str[i-1];
str[0]=temp;
str[m]='\0';
}
int main(){
int n,i,len=0;
char str[129];
printf("input \"leftnumber<<string\"\n");
fscanf(stdin,"%d %s",&n,str);
while(str[len]!='\0') ++len;
n=n%len;
if(n<0){
n=-n;
for(i=1;i<=n;i++)
left_move(str,len);
}
else if(n>0){
for(i=1;i<=n;i++)
right_move(str,len);
}
else
printf("%s\n",str);
printf("%s\n",str);
system("pause");
return 0;
}
2008-08-20 HY随机的幻方
大地勇士X
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX 15
#define TRUE 1
#define FALSE 0
int main()
{
int m,i,j,k,ni,nj;
int magic[MAX][MAX];
printf("Enter the number your wanted\n");
scanf("%d",&m);
for(i=0;i<m;i++)
for(j=0;j<m;j++)
magic[i][j]=FALSE;
if((m>0)&&(m%2!=0)){
srand( (unsigned) time(NULL) );
i=rand()%m;
j=rand()%m;
for(k=1;k<=m*m;k++){
magic[i][j]=k;
if(i==0)
ni=m-1;
else
ni=i-1;
if(j==m-1)
nj=0;
else
nj=j+1;
if(magic[ni][nj]==FALSE){
i=ni;
j=nj;
}
else {if(i==m-1)
i=0;
else
i++;
}
}
for(i=0;i<m;i++){
for(j=0;j<m;j++)
printf("%4d",magic[j]);
printf("\n");
}
}
else
printf("Error in inuut data.\n");
system("pause");
return 0;
}
2008-08-20 最少砝码数的天平
大地勇士X
题目描述:
有这样一个奇怪的天平,它的砝码只有1g, 3g, 9g, 27g......
并且各只有一个,但它却能够称出所有整数g质量的物体
例如要称出质量2g,那就一边放一个3g,另一边放物体和1g的
砝码就可以了。放在物体那边的砝码在前面加负号表示之。
输入:
多组测试数据,每行只有一个正整数n,表示要称的物体质量,
n在32bit有符号整数所能表示的数的范围内,
最后请使用EOF结束本程序
输出:
怎么称质量n出来
样例输入:
2
3
4
5
样例输出:
2 = 3 - 1
3 = 3
4 = 3 + 1
5 = 9 - 3 - 1
难度:very easy
算法思路
(1)首先要知道砝码1,3,9,27,81,243,729,2187,6561,19683....为等比数列,q=1/3;
(2)从输入的数N分析,如果数N在0=1/2<N<=3/2=1,则N的计算公式中第一个数由1组成
或1=3/2<N<=9/2=4之间,则N的计算公式中第一个数为3
或4=9/2<N<=27/2=13之间,则N的计算公式中第一个数为9
或13=27/2<N<=81/2=40之间,则N的计算公式中第一个数为27
以此类推....
假如N=40,那么40在13=27/2<N<=81/2=40区间,则知道40=27+?
为?=40+27=13,那么13就再递归进行分解
(3)递归的退出条件:
1.当N 除以 他左区间那个数时(如40就是27)余数等于等比数列中其中一个;
2.当N 减去 他左区间那个数时(如40就是27)等于等比数列中其中一个;
(4)如是上面那个?不符合(3)中的条件时,递归.
(5)需要注意的是每次递归出来的结果是加了圆括号()了,如果进递归前的符号不为负时
则下一步符号不用改变,相反为负号是就要改变;
例:输入40
(1)40进入函数,判40在哪个区间循环得出40在这个区间13=27/2<N<=81/2=40
则27将做为left用来除40取余数的,
(2)求40的余数mod_next_m=m%left得到余数mod_next_m为13;
其次判断后面的符号,ch=(m>left?'+':'-') 在13到27符号为负,27到40之间符号为正
之后判上一步sign的正负,因为递归得到的是加了圆括号的结果公式,题目要求去除圆括号
所为sign为正时,这次递归的符号不用改,如果为负,则符号取相反的结果.
把ch里的正负符号送给sign,刷新.为下一次递归做符号判断.
进入第(3)步判断,如果符合则不用进入递归,相反则要进入,进入时对送进的数进入减法
abs(m-left)在这里等于40-27=13,13进入递归分解
再说明,此算法要解决两个问题
(1)对数字N进入分解
(2)数字前的正负符号,对下一次递归符号的取决
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<math.h>
#define MAX 10
int fa[MAX]={1,3,9,27,81,243,729,2187,6561,19683};/*等比数列(砝码)*/
int search(int m){/*搜索数字m是否在上面数组内,是的话返回与m相等所在的数组下标i,否则返回-1*/
int i;
for(i=0;i<MAX;i++)
if(m==fa[i])
return i;
return -1;
}
int gogo(int m,char sign)
{
int i,left,mod_next_m,temp;
bool flag=true;
char ch;
for(i=1;i<MAX;i++)/*判断数字所在的区间*/
if( m>(fa[i]/2) && m<=(fa[i+1]/2) ){
left=fa[i];/*规律得出数字的分解公式中第一个数字*/
break;
}
mod_next_m=m%left;
printf("%d",left);
ch=(m>left?'+':'-');/*正常的符号*/
if(sign=='-'){/*如果他前面的符号为负的话,则去除圆括号后,里面的符号要取相反*/
ch=(ch=='+'?'-':'+');
}
printf("%c",ch);/*输出符号*/
sign=ch;/*为下一步递归前面的符号*/
if( ( i=search(mod_next_m) )>=0 ){/*递归退出条件1*/
printf("%d",fa[i]);
flag=false;
}
if(flag==true){/*递归退出条件2*/
temp=abs(left-m);
i=search(temp);
if(i>=0){
printf("%d",fa[i]);
flag=false;
}
}
if(flag==true){/*如果余数,减去left后的数都不是fa数组中的数则进入递归*/
gogo(abs(m-left),sign);/*进入递归*/
}
return 0;
}
int main(){
int m,i;
char sign='+';
while(scanf("%d",&m)!=EOF){
printf("%d=",m);
if( ( i=search(m) )>=0)
printf("%d",fa);
else
gogo(m,sign);
printf("\n");
}
}








