C语言l博客作业03
1.作业头
这个作业属于哪个课程 | 计科三班 |
---|---|
这个作业要求在哪里 | 掌握for循环 |
这个作业的目标 | 实现指定次数的程序设计 |
学号 | 20209023 |
1.PTA实验作业
1.1
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
1.1.1 实验代码截图
1.1.2 数据处理
数据表达:用了x,count,它们都是整型变量。用了a,b,c,factor,sum,它们都是双精度符点型变量。x的值通过输入,其他的值通过赋值。
数据处理:通过for循环,sum=sum+factor;a=a+b;
1.1.3 PTA提交列表说明
Q1:一开始出现内部错误。
A1:通过多次提及解决。
1.2
本题要求编写程序,计算平方根序列从1到N的和。
1.2.1 实验代码截图
1.2.2数据处理
数据表达:用了i,N,都是整型变量。用了s,是双精度符点型变量。N的值通过输入,其它变量通过赋值。
数据处理:通过for循环,数学函数。s=s+sqrt(i)
1.2.3 PTA提交列表说明
Q1:一开始格式输入错误。
A1:通过提示反复检查最终解决。
1.3
据说汪星人的智商能达到人类 4 岁儿童的水平,更有些聪明汪会做加法计算。比如你在地上放两堆小球,分别有 1 只球和 2 只球,聪明汪就会用“汪!汪!汪!”表示 1 加 2 的结果是 3。
本题要求你为电子宠物汪做一个模拟程序,根据电子眼识别出的两堆小球的个数,计算出和,并且用汪星人的叫声给出答案。
1.3.1实验代码截图
1.3.2数据处理
数据表达:用了整型变量i,A,B;A,B变量通过输入值。
数据处理:通过for循环。
1.3.3 PTA提交列表说明
本题问题不大。
2.阅读代码
include
include
include
include
include
include
include
define N 500005
typedef long long LL;
using namespace std;
int n ;
LL X[N] , Y[N] , Z[N];
char str[55];
LL cal(LL k)
{
LL sum = 0 , x;
for (int i = 1 ; i <= n; ++ i)
{
if (k < X[i]) continue;
x = min(k , Y[i]);
sum += (x – X[i]) / Z[i] + 1;
}
return sum;
}
void work()
{
n = 1;
X[n] = 0;
sscanf(str , “%I64d %I64d %I64d” , &X[n] , &Y[n] , &Z[n]);
if (!X[n]) return;
memset(str , 0 , sizeof(str));
while (gets(str) , *str)
++ n , sscanf(str , “%I64d %I64d %I64d” , &X[n] , &Y[n] , &Z[n]) , memset(str , 0 , sizeof(str));
LL l = 1 , r = 1LL << 33 , m;
while (l < r)
{
m = (l + r) >> 1;
if (cal(m) & 1)
r = m;
else l = m + 1;
}
if (l == 1LL << 33)
puts(“no corruption”);
else printf(“%I64d %I64d\n” , l , (cal(l) – cal(l – 1)));
}
int main()
{
while(gets(str))
work();
return 0;
}
其中包括许多函数,运用了条件语句,还有循环语句,和一些字符串的转换。有很多可以学习的地方。
3.学习总结
3.1学习进度条
周 日期 | 第三周 1号-8号 |
---|---|
这周所花时间 | 4小时 |
代码行 | 300行 |
学到知识点简介 | for循环 |
目前比较疑惑问题 | PTA上错误有时在其他编程软件上正确 |
3.2累积代码行和博客字数
时间 | 博客字数 | 代码行数 |
---|---|---|
第一周 | 303 | 227 |
第二周 | 431 | 459 |
第三周 | 753 | 300 |
3.3学习感悟
本周学习比较艰难,不过经过努力,终于解决本周作业。c语言真的很难。