利用函数求和
//只填写要求的函数
double fun(int n) {
double s = 0;
int i;
for (i = 1; i <= n; i++) {
s += 1.0 / (i * i);
}
return s;
}
编写char fun(char c)函数,将数字参数字符c按如下规则转换。
题干 | 编写char fun(char c)函数,将数字参数字符c按如下规则转换。 0---9 1---8 2---7 3---6 4---5 5---4 6---3 7---2 8---1 9---0 其他字符不变 |
//只填写要求的函数
char fun(char c) {
if (c >= '0' && c <= '9') {
c = '9' - (c - '0');
}
return c;
}
编写double fun(double f)函数,返回形参f保留两位小数点,第三位四舍五入的数。
因为限制(第三位四舍五入的数。)所以不能直接使用%.2lf
题干 | 编写double fun(double f)函数,返回形参f保留两位小数点,第三位四舍五入的数。 若f=123.524932,则返回123.520000; 若f=123.615032,则返回123.620000。 |
//只填写要求的函数
double fun(double f) {
return (int)(f * 100 + 0.5) / 100.0;
}
因为返回值类型为double(注意必须除以100.0)
编程求n经过多少次角谷定理变换能变为1,输入几个测试数不一定。
题干 | 编程求n经过多少次角谷定理变换能变为1,输入几个测试数不一定。 角谷定理:对于一个大于1的整数n,如果n是偶数,则n=n/2;如果n是奇数,则n=3*n+1。反复操作后,n一定为1。 如n=6,则经过6->3->10->5->16->8->4->2->1,返回次数8 如n=22,返回次数15 如n=1000,返回次数111 | ||
输入样例 | 6 22 1000 | ||
输出样例 | 8 15 111 |
int fun(int n) {
int cs = 0;
while (n != 1) {
if (n % 2 == 0)
n = n / 2;
else
n = n * 3 + 1;
cs++;
}
return cs;
}
#include<stdio.h>
int main() {
int n;
while (~scanf("%d", &n)) {
printf("%d\n", fun(n));
}
return 0;
}
输入任意[1,99999]之间的整数n,求[1,n]之间所有能被3整除,且有一位数字是5的数之个数及和。
题干 | 输入任意[1,99999]之间的整数n,求[1,n]之间所有能被3整除,且有一位数字是5的数之个数及和。 如1-100之间符合要求的数有6个:15,45,51,54,57,75,和为297。 | ||
输入样例 | 100 | ||
输出样例 | 6,297 |
#include<stdio.h>
int fun(int n) {
int t;
while (n) {
t = n % 10;
if (t == 5)
return 1;
n = n / 10;
}
return 0;
}
int main() {
int n, i, gs = 0, h = 0;
scanf("%d", &n);
for (i = 3; i <= n; i += 3) {
if (fun(i)) {
gs++;
h += i;
}
}
printf("%d,%d", gs, h);
return 0;
}