1.floor(x)返回不超过x的最大整数。为了减小误差影响,一般改成四舍五入,floor(x+0.5);
2.printf("%.2f", (double)clock() / CLOCKS_PER_SEC);
计时函数clock(),获得整个程序的运行时间,除以 CLOCKS_PER_SEC得到的值以秒为单位。不过前面要加time.h
3.输入结束符 :Windows:Ctrl+Z ,Linux:Ctrl+D
4.输入输出重定向:
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
input,output,是文件名字,r,w表示只读只写0.0
复制师傅滴:
编译选项_DEBUG的使用
DEBUG模式下输出到文件data.out,从data.in输入
不是DEBUG即忽略#define LOCAL,从而从标准输入输入,输出到标准输出
习题:
2-1
#include<stdio.h>
int main() {
int a, b, c;
for (int i = 100; i <= 999;i++) {
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if (a * a*a + b * b*b + c * c*c ==i)
{
printf("%d\n", i);
}
}
return 0;
}
2-2:啊~这个题,自己想了一个超级麻烦的方法还是师傅给改出来的0.0那还是贴一贴,被师傅帅到的瞬间orz 。
#include<stdio.h>
#include<algorithm>
using namespace std;
#pragma warning(disable:4996)
int main() {
int a, b, c, t = 0 ;
while (scanf_s("%d%d%d", &a, &b, &c))
{
t++; int m = 0x3f3f3f3f;
for (int i = 0; i <= 100; i++)
for (int j = 0; j <= 100; j++)
for (int k = 0; k <= 100; k++)
if (a + 3 * i == b + 5 * j && a + 3 * i == c + 7 * k)
m = min(m,a + 3 * i);
if (m<=100) printf("Case %d:%d\n", t, m);
else printf("no answer\n");
}
return 0;
}
下面是正确的
#include<iostream>
using namespace std;
int main() {
int a, b, c, ans, cnt = 0;
while (scanf("%d%d%d", &a, &b, &c)) {
++cnt;
ans = 0;
for (int i = 10; i < 100; ++i) {
if (i % 3 == a && i % 5 == b && i % 7 == c) {
ans = i;
break;
}
}
cout << "Case " << cnt << ": ";
if (ans) cout << ans << endl;
else cout << "No answer" << endl;
}
}
扶我起来,我还能敲= =
2-3
#include<stdio.h>
int mian(){
int n, m;
scanf("%d", &n);
while (n>0)
{
m = 2 * n - 1;
for (int j = 0; j<m; j++)
printf("#");
printf("\n");
n--;
}}
2-4
#include<stdio.h>
int main() {
int m, n;
while (scanf_s("%lld%lld",&n,&m))
{
double s = 0.0;
if (m*n != 0) {
for (int i = n; i < m + 1; i++)
{
s += 1.0/ (i*i);
}
printf("%.5f", s);
}
if (m==0&&n==0)
{
return 0;
}
}
}
2-5+2-6好像木有自己写,看得师傅的
复制一下嘻嘻
2-5
#include<iostream>
using namespace std;
#pragma warning(disable:4996)
int main() {
int a, b, c, cnt = 0;
int sta[105], top = -1;
while (scanf("%d%d%d", &a, &b, &c) && (a || b || c)) {
++cnt;
top = -1;
c += 2;
while (c--)
sta[++top] = a / b, a = a % b * 10;
if(sta[top]>=5){
int k = top-1;
while (k>0 && sta[k] == 9)
sta[k--] = 0;
sta[k] += 1;
}
printf("Case %d: %d.", cnt, sta[0]);
for (int i = 1; i < top; ++i)
printf("%d", sta[i]);
cout << endl;
}
}
2-6
#include<iostream>
using namespace std;
int main() {
int vis[10] = {};
for (int a = 1; a <= 9; ++a) {
vis[a] = 1;
for (int b = 1; b <= 9; ++b) {
if (vis[b]) continue;
vis[b] = 1;
for (int c = 1; c <= 9; ++c) {
if (vis[c]) continue;
vis[c] = 1;
for (int d = 1; d <= 9; ++d) {
if (vis[d]) continue;
vis[d] = 1;
for (int e = 1; e <= 9; ++e) {
if (vis[e]) continue;
vis[e] = 1;
for (int f = 1; f <= 9; ++f) {
if (vis[f]) continue;
vis[f] = 1;
for (int g = 1; g <= 9; ++g) {
if (vis[g]) continue;
vis[g] = 1;
for (int h = 1; h <= 9; ++h) {
if (vis[h]) continue;
vis[h] = 1;
for (int i = 1; i <= 9; ++i) {
if (vis[i]) continue;
vis[i] = 1;
int A = a * 100 + b * 10 + c, B = d * 100 + e * 10 + f, C = g * 100 + h * 10 + i;
if (A * 2 == B &&A * 3 == C)
printf("%d %d %d\n", A, B, C);
vis[i] = 0;
}
vis[h] = 0;
}
vis[g] = 0;
}
vis[f] = 0;
}
vis[e] = 0;
}
vis[d] = 0;
}
vis[c] = 0;
}
vis[b] = 0;
}
vis[a] = 0;
}
}
开始被这个长度吓到0.0