Ejemplo 1
El análisis muestra que el número de briquetas en cada capa es:
1
1 + 2
1 + 2 + 3
1 + 2 + 3 + 4
...
Aquí está el código que escribí al principio:
#include<iostream>
using namespace std;
int main()
{
int ans = 0;
for (int i = 1;i <= 100;i++)
{
for (int j = 1;j <= i;j++)
{
ans += j;
}
}
cout << ans << endl;
}
Pero obviamente, la complejidad de tiempo será muy alta si hace esto. Aquí está el código con una complejidad relativamente baja durante un período de tiempo:
Los resultados de ambos códigos son 171700
#include<iostream>
using namespace std;
int main()
{
int sum = 0,tmp = 0;
for (int i = 1;i <= 100;i++)
{
tmp += i;
sum += tmp;
}
cout << sum << endl;
return 0;
}
Ejemplo 2
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
cin >> n;
//n表示行数
for (int i = 1;i <= n;i++)
{
//space = string(n,s)表示space由n个字符串s组成
//space表示空格,ch表示字符串
string space = string(n - i,' ');
string ch = string(2 * i - 1,'A' + i - 1);
cout << space + ch << endl;
}
return 0;
}
El enfoque de esta pregunta es averiguar la relación entre espacios, cadenas y número de líneas.
Ejemplo 3
Acerca de la sintaxis de strcat de empalme de cadenas:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char res[30];
char *str1 = "hello",*str2 = " ",*str3 = "world";
strcat(res,str1);
strcat(res,str2);
strcat(res,str3);
cout << res << endl;
printf("%s\n",res);
return 0;
}
Una vez que la matriz de caracteres se define globalmente, el formato de salida es normal
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char res[30];
int main()
{
char *str1 = "hello",*str2 = " ",*str3 = "world";
strcat(res,str1);
strcat(res,str2);
strcat(res,str3);
cout << res << endl;
printf("%s\n",res);
return 0;
}