C++ Linux 下字符串简单显示颜色的示例,使用switch语句:
#include <iostream> #include <string> using namespace std; void printcolor(string color, string str) { int clr; string head; string tail; string display; if(color=="red") clr=1; if(color=="green") clr=2; switch(clr){ case 1:{ head="\033[31m"; tail="\033[0m"; display=head+str+tail; break; } case 2:{ head="\033[32m"; tail="\033[0m"; display=head+str+tail; break; } default:{ display=str; break; } } cout << display << endl; } int main () { printcolor("red", "helloworld!"); printcolor("green", "helloworld!"); return 0; }
根据质数的倍数一定不是质数,利用线性筛法,可以让时间复杂度达到O(n),代码献上:
//求2~n之间的素数 #include<cstdio> #include<iostream> #include<cstring> using namespace std; #define MAXN_N 1000001 int v[MAXN_N],primes[MAXN_N];//primes用来存储素数 int main() { int n,m=0;//m 是素数的数目 cout << "输入 n 的值:" << endl; scanf("%d",&n); memset(v,0,sizeof(v)); for(int i=2;i<=n;i++) { if(v[i]==0)//i是素数 { v[i]=i; primes[++m]=i; } for(int j=1;j<=m;j++) { if(primes[j]>v[i]||primes[j]>n/i)break;//i有比primes[j]更小的质因子,或者超出范围 v[i*primes[j]]=primes[j];//primes[j]是合数i*primes[j]的最小质因子 } } for(int i=1;i<=m;i++) cout<<primes[i]<<" "; return 0; }
筛选法代码查找 2 到 100 中的质数:
#include <iostream> #include<math.h> using namespace std; int main() { int i,j; for(i=2;i<100;i++) { for(j=2;j<=(double)sqrt((double)i);j++) { if(!(i%j)) break;//不是质数 } if(j>(double)sqrt((double)i)) cout<<i<<"是质数\n"; } return 0; }
for语句的基本格式
for (表达式1;表达式2;表达式3) { // 循环体语句 }
for 语句中的三个表达式可部分或全部省略,但两个分号不能省略。
常见的是:将表达式1放在了 for 语句之前,或表达式3放在了循环体中,在 for 语句中就可相应地省略表达式1或表达式3。
如:
for(i=1,s=0; i<=100; i++) { sum += i; }
可写成如下形式:
i=1; sum=0; for ( ;i<=100; ) { sum+=i; i++; } // 等效于while循环
表达式2也可省略,写成:
for (; ;) {…}
此时,系统约定表达式2的值为 1,即恒为真,则等同于:
for (; 1;) {…}
下面的程序中,j 最初的值为 10,然后自增到 11,接着再加上 100 并将结果赋值给 j,最后 j 再加上 999,得出结果 1110。
#include <iostream> using namespace std; int main() { int i, j; j = 10; i = (j++,j+=100, 999+j); // i = 10+1+100+999 cout << i; return 0; }
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
1964cpp-switch
C++ Linux 下字符串简单显示颜色的示例,使用switch语句:
1963cpp-nested-loops
根据质数的倍数一定不是质数,利用线性筛法,可以让时间复杂度达到O(n),代码献上:
1962cpp-nested-loops
筛选法代码查找 2 到 100 中的质数:
1961cpp-for-loop
for语句的基本格式
for 语句中的三个表达式可部分或全部省略,但两个分号不能省略。
常见的是:将表达式1放在了 for 语句之前,或表达式3放在了循环体中,在 for 语句中就可相应地省略表达式1或表达式3。
如:
可写成如下形式:
表达式2也可省略,写成:
此时,系统约定表达式2的值为 1,即恒为真,则等同于:
1960cpp-comma-operator
下面的程序中,j 最初的值为 10,然后自增到 11,接着再加上 100 并将结果赋值给 j,最后 j 再加上 999,得出结果 1110。