private void OnAttendeeConnected(object pObjAttendee)
{
IRDPSRAPIAttendee pAttendee = pObjAttendee as IRDPSRAPIAttendee;
pAttendee.ControlLevel = CTRL_LEVEL.CTRL_LEVEL_VIEW;
LogTextBox.Text += ("Attendee Connected: " + pAttendee.RemoteName + Environment.NewLine);
}

HRESULT CoCreateInstance (
REFCLSID rclsid,
LPUNKNOWN pUnkOuter,
DWORD dwClsContext,
REFIID riid,
LPVOID* ppv );

// 大数的四则运算及求模。数字无位数限制,除法的商支持小数。
#include <iostream>
#include <string>
#include <time.h> using namespace std; class BIGINTEGEROPERATIONS
{
private:
static int COMPARE(string number1, string number2)
{
int j; int length1 = number1.size();
int length2 = number2.size(); if (number1.size() == )
number1 = "";
if (number2.size() == )
number2 = ""; j = ;
for (int i = ; i < length1; ++i)
{
if (number1[i] == '')
++j;
else
break;
}
number1 = number1.substr(j); j = ;
for (int i = ; i < length2; ++i)
{
if (number2[i] == '')
++j;
else
break;
}
number2 = number2.substr(j); length1 = number1.size();
length2 = number2.size(); if (length1 > length2)
{
return ;
}
else if (length1 == length2)
{
if (number1.compare(number2) > )
{
return ;
}
else if (number1.compare(number2) == )
{
return ;
}
else
{
return -;
}
}
else
{
return -;
} return ;
} public:
static string PLUS(string number1, string number2)
{
int i; int length1 = number1.size();
int length2 = number2.size(); string result = ""; reverse(number1.begin(), number1.end());
reverse(number2.begin(), number2.end()); for (i = ; i < length1 && i < length2; i++)
{
char c = (char)(number1[i] + number2[i] - );
result = result + c;
} while (i < length1)
{
result = result + number1[i];
++i;
} while (i < length2)
{
result = result + number2[i];
++i;
} int carry = ;
for (i = ; i < (int)result.size(); ++i)
{
int value = result[i] - + carry;
result[i] = (char)(value % + );
carry = value / ;
} if (carry != )
{
result = result + (char)(carry + );
} for (i = result.size() - ; i >= ; i--)
{
if (result[i] != '') break;
} result = result.substr(, i + ); reverse(result.begin(), result.end()); if (result.length() == )
result = ""; return result;
} static string MINUS(string number1, string number2)
{
int i;
string result = ""; int length1 = number1.size();
int length2 = number2.size(); if (COMPARE(number2, number1) > )
{
return "-" + MINUS(number2, number1);
} reverse(number1.begin(), number1.end());
reverse(number2.begin(), number2.end()); for (i = ; i < length1 && i < length2; i++)
{
char c = number1[i] - number2[i] + ;
result = result + c;
} if (i < length1)
{
for (; i < length1; i++)
{
result = result + number1[i];
}
} int carry = ;
for (i = ; i < (int)result.length(); i++)
{
int value = result[i] - + carry;
if (value < )
{
value = value + ;
carry = -;
}
else carry = ; result[i] = (char)(value + );
} for (i = result.size() - ; i >= ; i--)
{
if (result[i] != '')break;
} result = result.substr(, i + ); reverse(result.begin(), result.end()); if (result.length() == ) result = ""; return result;
} static string MULTIPLY(string number1, string number2)
{
int i, j;
int *iresult;
int length1 = number1.size();
int length2 = number2.size();
string result = ""; reverse(number1.begin(), number1.end());
reverse(number2.begin(), number2.end()); iresult = (int*)malloc(sizeof(int) * (length1 + length2 + ));
memset(iresult, , sizeof(int) * (length1 + length2 + )); for (i = ; i < length1; i++)
{
for (j = ; j < length2; j++)
{
iresult[i + j] += ((number1[i] - ) * (number2[j] - ));
}
} int carry = ;
for (i = ; i < length1 + length2; i++)
{
int value = iresult[i] + carry;
iresult[i] = value % ;
carry = value / ;
} for (i = length1 + length2 - ; i >= ; i--)
{
if (iresult[i] != )break;
} for (; i >= ; i--)
{
result = result + (char)(iresult[i] + );
} free(iresult); if (result == "") result = ""; return result;
} // 缺省地,商数向下取整,floatpoint用于指定保留小数点的位数
static string DIVIDE(string number1, string number2, int floatpoint = )
{
int i, j, pos;
string result = "";
string tempstr = ""; int length1 = number1.size();
int length2 = number2.size(); if ((COMPARE(number2, number1) > ) && (floatpoint == ))
{
return "";
} tempstr = number1.substr(, length2); pos = length2 - ; while (pos < length1)
{
int quotient = ;
while (COMPARE(tempstr, number2) >= )
{
quotient++;
tempstr = MINUS(tempstr, number2);
} result = result + (char)(quotient + ); pos++; if (pos < length1)
{
tempstr += number1[pos];
}
} if (floatpoint > )
{
result += '.';
string stmp = "";
int itmp = ; for (int k = ; k < floatpoint; ++k)
{
stmp += '';
if (COMPARE(MULTIPLY(MINUS(number1, MULTIPLY(DIVIDE(number1, number2), number2)), stmp), number2) < )
{
result += '';
++itmp;
}
} string temp = DIVIDE(MULTIPLY(MINUS(number1, MULTIPLY(DIVIDE(number1, number2), number2)), stmp), number2);
if (temp[] != '') result += temp;
} j = result.size();
for (i = ; i < j; i++)
{
if (result[i] != '') break;
} result = result.substr(i, j); return result;
} static string MOD(string number1, string number2)
{
if (COMPARE(number2, number1) > )
{
return number1;
}
else if (COMPARE(number2, number1) == )
{
return "";
}
else
{
return MINUS(number1, MULTIPLY(DIVIDE(number1, number2), number2));
}
}
}; int main(int argc, char* argv[])
{
clock_t start, end; // 两个操作数均为600位
string number1 = ""
""
""
""
""
""
""
""
""
""
""
""; string number2 = ""
""
""
""
""
""
""
""
""
""
""
""; string result;
int interval = ; start = clock();
result = BIGINTEGEROPERATIONS::PLUS(number1, number2);
end = clock();
interval = (end - start) * / CLOCKS_PER_SEC; cout << "Result of PLUS operation:" << endl;
cout << result << endl;
cout << "It took " << interval << "ms" << endl;
cout << endl; start = clock();
result = BIGINTEGEROPERATIONS::MINUS(number1, number2);
end = clock();
interval = (end - start) * / CLOCKS_PER_SEC; cout << "Result of MINUS operation:" << endl;
cout << result << endl;
cout << "It took " << interval << "ms" << endl;
cout << endl; start = clock();
result = BIGINTEGEROPERATIONS::MULTIPLY(number1, number2);
end = clock();
interval = (end - start) * / CLOCKS_PER_SEC; cout << "Result of MULTIPLY operation:" << endl;
cout << result << endl;
cout << "It took " << interval << "ms" << endl;
cout << endl; start = clock();
result = BIGINTEGEROPERATIONS::DIVIDE(number1, number2);
end = clock();
interval = (end - start) * / CLOCKS_PER_SEC; cout << "Result of DIVIDE operation:" << endl;
cout << result << endl;
cout << "It took " << interval << "ms" << endl;
cout << endl; start = clock();
result = BIGINTEGEROPERATIONS::MOD(number1, number2);
end = clock();
interval = (end - start) * / CLOCKS_PER_SEC; cout << "Result of MOD operation:" << endl;
cout << result << endl;
cout << "It took " << interval << "ms" << endl;
cout << endl; return ;
} /* 计算结果如下(Release 模式): Result of PLUS operation:
1999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989997
It took 0ms Result of MINUS operation:
100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
It took 0ms Result of MULTIPLY operation:
999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989997000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010002
It took 15ms Result of DIVIDE operation:
1.0001
It took 0ms Result of MOD operation:
100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001
It took 0ms Debug模式下,加、减、乘、除以及取模的执行时间分别为:
0ms
0ms
63ms
78ms
0ms */

void remove_duplicate(char* str)
{
if(str==NULL)
return; int len=strlen(str);
if(len<)
return; int i,j,k;
for(i=;i<len;++i)
{
for(j=i+;j<len;++j)
if(str[i]==str[j])
{
for(k=j+;k<len;++k)
{
str[k-]=str[k];
len--;
}
}
} str[len-]='\0';
}

void remove_duplicate(char* str)
{
if(str==NULL)
return; int len=strlen(str);
if(len<)
return; int i,j;
int index=;
for(i=;i<len;++i)
{
if(str[i]!='\0')
{
str[index++]=str[i];
for(j=i+;j<len;++j)
{
if(str[j]==str[i])
str[j]='\0';
}
}
}
str[index]='\0';
}

void remove_duplicate(char* str)
{
if(str==NULL)
return; int len=strlen(str);
if(len<)
return; char flags[];
int i,j;
int index=; memset(flags,,sizeof(flags));
flags[str[]]=; for(i=;i<len;++i)
{
if(flags[str[i]]!=)
{
str[index++]=str[i];
flags[str[i]]=;
}
}
str[index]='\0';
}

temporary的更多相关文章

  1. 代码的坏味道(7)——临时字段(Temporary Field)

    坏味道--临时字段(Temporary Field) 特征 临时字段的值只在特定环境下有意义,离开这个环境,它们就什么也不是了. 问题原因 有时你会看到这样的对象:其内某个实例变量仅为某种特定情况而设 ...

  2. 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\106f9ae8\cc0e1

    在本地开发环境没问题,但是发布到服务器出现:未能写入输出文件"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.Ne ...

  3. App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file

    ios进行http请求,会出现这个问题: App Transport Security has blocked a cleartext HTTP (http://) resource load sin ...

  4. 转发 win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案

    win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NE ...

  5. Oracle中的Temporary tablespace的作用

    临时表空间主要用途是在数据库进行排序运算[如创建索引.order by及group by.distinct.union/intersect/minus/.sort-merge及join.analyze ...

  6. 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\41c191fd\ff9345c5\App_Web_login.cshtml.65793277

    本地开发环境没问题,但是发布到服务器出现问题或则直接在IIS上修改东西就给我抛出以下错误: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework64 \v4 ...

  7. iOS使用webView 加载网页,在模拟器中没有问题,而真机却白屏了。App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist f

    还在info.plist中配置.除了配置允许上网的配置之外,还有另一项.

  8. Oracle临时表GLOBAL TEMPORARY TABLE

    临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前 会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到.临时表不存 ...

  9. iOS App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.plistfile

    “App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Tem ...

  10. 自己用node.js 搭建APP服务器,然后用AFNetworking 请求 报如下错误:App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure. Temporary exceptions can be configured via your app's Info.

    "App TransportSecurity has blocked a cleartext HTTP (http://) resource load since it isinsecure ...

随机推荐

  1. oracle 实例名和服务名以及数据库名区别

    一.数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名.在数据库安装或创建完成之后, ...

  2. 文件同步工具BT Sync介绍和使用说明

    BT Sync介绍 BT 下载,相信大伙儿都知道的.今儿个要介绍的 BT Sync,跟 BT 下载一样,都是 BitTorrent 公司发明滴玩意儿,都是采用 P2P 协议来进行传输. 简而言之,BT ...

  3. Storm系列(七)架构分析之Scheduler-调度器[DefaultScheduler]

    Storm默认的任务调度器.实现如下: 1  (defn –prepare [this conf]) 2  (defn –schedule [this ^Topologies topologies ^ ...

  4. android onTouch()与onTouchEvent()的区别

    1.onTouch方法: onTouch方法是View的 OnTouchListener借口中定义的方法.当一个View绑定了OnTouchLister后,当有touch事件触发时,就会调用onTou ...

  5. 安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法

    ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':/home/king/php-5.2.13/ext/iconv/ ...

  6. HDU4349--Xiao Ming's Hope(数论)

    输入一个n(1<=n<=108),求C(n,0),C(n,1),C(n,2)...C(n,n)有多少个奇数. Lacus定理 http://blog.csdn.net/acm_cxlove ...

  7. 细说Oracle数据库与操作系统存储管理二三事

    在上大学的时候,学习操作系统感觉特别枯燥,都是些条条框框的知识点,感觉和实际应用的关联不大.发现越是工作以后,在工作中越想深入了解,发现操作系统知识越发重要.在实践中结合理论还是不错的一种学习方法.自 ...

  8. 跟我一起写Makefile:MakeFile介绍

    makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序. 首先,我们用一个示例来说明makefile的书写规则.以便给大家一个感性认识.这 ...

  9. ECharts中文显示为Unicode码

    后台遍历出的数据,在ECharts的js中引用为Unicode码 解决方案: <s:property>标签的escape属性默认值为true,即不解析html代码,直接将其输出. 若想要输 ...

  10. SQL SERVER全面优化

    今天我们从语句的一些优化写法及一些简单优化方法做一个介绍.这对于很多开发人员来说还是很有用的!为了方便阅读给出前文链接: SQL SERVER全面优化-------Expert for SQL Ser ...