能力值:
( LV6,RANK:90 )
|
-
-
26 楼
[QUOTE=forgot;852494]继续娱乐
sum(map(int, ''.join(x if x.isdigit() else ' ' for x in s).split()))
[/QUOTE]
多谢指点,我用filter不能带else,郁闷了很久.
|
能力值:
( LV3,RANK:30 )
|
-
-
27 楼
W 哥拒绝你是他的损失啊 。。。。。。。。
S 哥忽视你,是在考验你啊,可怜的孩子
|
能力值:
( LV12,RANK:230 )
|
-
-
28 楼
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char* pCh = "我20你30他40那个人999";
byte* pByte = (byte*)pCh;
int len = strlen(pCh);
unsigned char* szTmp = new unsigned char[len + 1];
memset(szTmp, 0, len + 1);
int pos = 0;
int sum = 0;
do
{
if (pByte[0] >= 0x30 && pByte[0] <= 0x39)
{
szTmp[pos] = (char)pByte[0];
pos++;
}
else if (pos)
{
int tmp = atoi((const char*)szTmp);
sum += tmp;
pos = 0;
memset(szTmp, 0, len + 1);
}
pByte++;
} while (--len >0 || pos);
printf("sum is %d.", sum);
}
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
楼主,如果是五 你怎么处理呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
嘿嘿 其实只用检测出这里面的数字就可以了,高级语言可以用正则表达式过滤出来,c语言可以用asi码判断
|
能力值:
( LV2,RANK:140 )
|
-
-
31 楼
没想到我的一点学习心得竟然被推荐为精华,小弟真是惭愧,我一定继续努力学习,争取什么时候发表一篇真正算得上精华的文章
h哥,我用的也是VC++6.0,应该可以不做任何修改编译通过的,是否因为你把代码保存为.cpp所以才要做修改呢?
另外我现在还没毕业当然更没就业,难道你要给我推荐工作么?
g哥,如果是取汉字数字相加的话,那就应该算做另一道题目了
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
C哥 你好强大!
|
能力值:
( LV12,RANK:230 )
|
-
-
33 楼
恩。是哦,呵呵。向你学习。
|
能力值:
( LV5,RANK:60 )
|
-
-
34 楼
和编程实现字符串中删除字符或字符串类似吧
例如:从“qasjkddmrgdfegreger阿购房贷款法国队海关法dsgdfhgfb”删除“gdf”字符串
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
受益匪浅学习了
|
能力值:
( LV6,RANK:90 )
|
-
-
36 楼
py表示毫无压力,支持汉字相加
s = '你54839865486548650468054658847397577599他5542385997788999345666六六六66666666666666999999999999999999999999我8888888888888888888888888888888888888'
b = dict( zip( '一 二 三 四 五 六 七 八 九 零'.split( ) ,"1234567890" ) )
s = reduce( lambda s , x : s.replace( x[ 0 ] ,x[ 1 ] ) , ( x for x in b.items( ) ),s )
print sum( map ( int , ''.join( x if x.isdigit( ) else ' ' for x in s).split( ) ) )
输出554238599778899934566666730395421042104539356943547736286466486
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
刘涛涛前辈的这个题目,看似很简单,实际不是很简单。他只说了包含一些数字,但并没有说正数还是负数,整数还是浮点数
================================================
这个属于需求不明确,以后再有人拿这个来考你,可理直气壮的要求重新出题。
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
这个帖子,可以参考一下
http://bbs.pediy.com/showthread.php?t=46249
|
能力值:
( LV12,RANK:240 )
|
-
-
39 楼
bug: 99+1
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
非常easy的题目啊,呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
学习汇编中
写个蛋疼的内联汇编版
#include <stdio.h>
#include <Windows.h>
int add(char * dst,char * src);
void asmstrrev(char * dts);
int main(int argc, char * argv[])
{
if(argc != 2)
return 1 ;
int len = strlen(argv[1])*2;
char * pbuf = argv[1];
char * psum = (char*)malloc(len);
memset(psum,0,len);
char * ptemp = psum + len/2;
while (pbuf = strpbrk(pbuf,"0123456789"))
{
char * locate = pbuf;
while(*pbuf >= '0' && *pbuf <= '9')
pbuf++;
memset(ptemp,0,pbuf - locate+1);
memcpy(ptemp,locate,pbuf - locate);
asmstrrev(ptemp);
asmstrrev(psum);
add(psum,ptemp);
asmstrrev(psum);
}
printf("sum=%s\r\n",psum);
gets(psum);
free(psum);
return 0;
}
int add(char * dts,char * scr)
{
__asm{
mov edi,dts;
mov esi,scr;
xor eax,eax;
xor ecx,ecx;
jmp STAR;
L1:
mov edx,dts;
add edx,ecx;
L2:
or ax,0x3030;
mov byte ptr[edx],al;
shr ax,8;
inc edx;
add al,byte ptr [edx];
aaa;
jc L2;
or al,0x30;
mov byte ptr[edx],al;
inc ecx;
STAR:
mov al,byte ptr[esi+ecx];
test al,al;
jz END;
add al,byte ptr [edi+ecx];
aaa;
jc L1;
or al,0x30;
mov byte ptr[edi + ecx],al;
inc ecx;
jmp STAR;
END:
}
return 0;
}
void asmstrrev(char * dts)
{
__asm{
mov edi,dts;
mov esi,edi;
xor ecx,ecx;
xor eax,eax
jmp STAR;
L1:
inc ecx;
STAR:
cmp al,byte ptr [edi+ecx];
jnz L1;
add esi,ecx;
dec esi;
shr ecx,1;
test ecx,ecx;
jz END;
L2:
mov al,byte ptr [edi];
xchg al,[esi];
mov byte ptr [edi],al;
inc edi;
dec esi;
loop L2;
END:
}
return;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
高精度运算属于初中题目。
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
我忽然想起个笑话
原文作者:窗帘是蓝色的
语文老师:蓝色的窗帘象征着作者强烈的被压迫和被束缚的抑郁的思想感情
原文作者:窗帘真TM的是蓝色的!
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
唉 用perl的、python的感觉压力都不大
|
能力值:
( LV6,RANK:90 )
|
-
-
45 楼
呵 目前我大概看一下题目觉得如果只是 整数相加的话
应该可以搞下来 但是如果是-数和浮点数之类的 可能还需要点时间来解决
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
发现换成浮点数的话
不用百度的我,果断的悲剧了
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
Dim a(0) as long
a(0)=&HC0EED0C5
debug.print a(0)
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
自己胡乱写了一个:
#include <stdio.h>
main()
{
char p[ 100 ] = { "我30你40他50" };
int sum = 0;
int sum_end = 0;
int count = 0;
char* p1 = p;
while( *p1 != '\0' )
{
while ( ( ( *p1 - '0' ) < 0 ) ||
( ( *p1 - '9' ) > 9 )
)
{
p1++;
}
sum = ( *p1 - '0' );
p1++;
while( ( ( *p1 - '0' ) >= 0 ) &&
( ( *p1 - '9' ) <= 9 )
)
{
sum = sum * 10 + ( *p1 - '0' );
count++;
p1++;
}
count = 0;
sum_end += sum;
}
printf( " %d\n ", sum_end );
return;
}
|
|
|