输入一个数n,输出1,2,3,...,9999(n个9)(利用大数求解)
来源:互联网 发布:corel软件包括 编辑:程序博客网 时间:2024/05/17 13:10
#include<iostream>#include<vector>#include<iterator>#include<string>using namespace std;class bigInt{public:bigInt(){}bigInt(const bigInt &data):v(data.v){}bigInt(string s){int len =s.size();while(len){if(s[len-1]<='9'&&s[len-1]>=0)v.push_back(s[len-1]-'0');elsecout<<"不是数字\n";len--;}}bigInt(int n){for(int i=0;i<n;i++){v.push_back(9);}}bigInt(vector<int> v):v(v){}bigInt operator +(bigInt d){vector<int> data = d.v;bigInt sum;vector<int>::iterator iv = v.begin();vector<int>::iterator idata = data.begin();int x =0;while(iv!=v.end()&&idata!=data.end()){ x = (*iv) + (*idata)+x; sum.v.push_back(x%10); x = x/10; iv++; idata++;}while(iv!=v.end()){x = (*iv) + x;sum.v.push_back(x%10);x = x/10;iv++;}while(idata!=data.end()){x=(*idata) + x;sum.v.push_back(x%10);x = x/10;idata++;}if(x!=0)sum.v.push_back(x);return sum;}bigInt& operator =( bigInt& data){v = data.v;return *this;}bigInt operator ++(){vector<int>::iterator iv = v.begin();int x =1;while(iv!=v.end()){ x = (*iv) +x; *iv = x%10; x = x/10; iv++;}if(x!=0)v.push_back(x);return *this;}bigInt operator ++(int){bigInt pre;pre.v = this->v;vector<int>::iterator iv = v.begin();int x =1;while(iv!=v.end()){ x = (*iv) +x; *iv = x%10; x = x/10; iv++;}if(x!=0)v.push_back(x);return pre;}bool operator <=(bigInt& data){bool isTrue=false;vector<int>::reverse_iterator iv = v.rbegin();vector<int>::reverse_iterator idata = data.v.rbegin();int lenIv = v.size();int lenData = data.v.size();if(lenIv>lenData) isTrue= false;else if(lenIv<lenData) isTrue= true;else{int i=lenIv;while(iv!=v.rend()){if((*iv)>(*idata)){isTrue= false;break; }else if(*iv<*idata){isTrue = true;break; } else { iv++; idata++; i--; }}if(iv==v.rend()){isTrue=true;}}return isTrue;}friendostream& operator <<(ostream &os,const bigInt &data){copy(data.v.rbegin(),data.v.rend(),ostream_iterator<int,char>(os,""));return os;}private:vector<int> v;};void out(int );int main(){out(3);cout<<endl;//out(3);cout<<endl;}//若输入的数为n,则输出数1,2,3,4,...,9999(到n个9)void out(int n){bigInt end(n);bigInt start("1");for(;start<=end;start++)cout<<start<<",";}
- 输入一个数n,输出1,2,3,...,9999(n个9)(利用大数求解)
- 输入一个数n,输出1~n的全排列
- 输入n及n个整数(n不超过20),输出这n个数的平均值
- 输入n及n个整数(n不超过20),输出这n个数的平均值
- 输入n及n个整数(n不超过20),输出这n个数的平均值
- 输入n及n个整数(n不超过20),输出这n个数的平均值
- 输入一个数,实现n!+(n-1)!+.....+2!+1!;
- 输入一个n,输出结果1 2 3---经典算法
- 输出n! n为用户输入的一个正整数 n! = n*(n-1)*(n-2)*...*1 5! = 5*4*3*2*1 = 120
- 阶乘之和Description 输入n,计算S=1!+ 2!+…+ n!的末6位(不含前导0)。这里,n!表示前n个正整数之积。 Input 输入n,,n≤ 106。 Output 输出S的
- 输入一个数n,编程计算输出1-n之间的所有素数之和
- 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
- (递归版)输入一个正整数n,输出其反序数
- 编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包问题求解)
- 编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包问题求解)
- 编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包问题求解) .
- Java求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包动态规划问题求解)
- 顺序输出从1到N位的所有数字(N可能是一个大数位)。
- mysql建表常用语句 个人笔记分享
- 表分析、约束及表间关系
- 排序算法——快速排序
- Linux特殊文件权限
- fzu-1417
- 输入一个数n,输出1,2,3,...,9999(n个9)(利用大数求解)
- Oracle体系结构1
- 【C语言】朴素字符串匹配算法及其实现
- Oracle体系结构2
- HTML 5 Canvas
- 海量数据库及分区1
- OXFeeeFeee指针的含义
- java面向对象上:对象的行为
- 海量数据库及分区2