线性插值

线性插值

http://www.nowcoder.com/questionTerminal/91b4c0f9fa9545a582e5b38bb9f6b90e

/* 基本思路: 题目输入的n是没什么用的。输入m组数据,每组数据保护编号、测量值 
              单层循环遍历数组,若序号重复,temp++查找下一个数据的下标,若序号不连续,进行线性插值 
*/
#include<iostream>
using namespace std; 
int num[1000], value[1000];
void buzhi(int m, int n, int index_m, int index_n){ // m是前面的序号,n是后边的序号, index_m ,index_n分别是对应的下标 
    int temp;
    for(int i = m + 1; i < n; i++){
        temp = value[index_m] + (value[index_n]-value[index_m])/(n - m)*(i-m);
        cout << i << " ";
        cout << temp << endl;
    }
}

int main(){
    int m, n;
    while(cin >> m >> n){
        for(int i = 0; i < m; i++){
            cin >> num[i] >> value[i];
        }
        int temp=0;
        for(int i = 0; i < m-1, temp < m; i=temp){
            temp=i+1;
            cout << num[i] << " " << value[i] << endl;
            while(num[i] == num[temp]) temp++;
            if(num[i] != num[temp]-1){ // 如果不连续 
                buzhi(num[i], num[temp], i, temp);
            }
        }
        for(int i = 0; i < 1000; i++) num[i]={0};
        for(int i = 0; i < 1000; i++) value[i]={0};
    }
    return 0;
}
/*
测试数据: 
6 3
2 4
2 5
2 6
5 10
5 11
7 22
7 23
*/
全部评论
太需要了,感谢!!
点赞 回复 分享
发布于 2022-09-21 15:59 陕西

相关推荐

不愿透露姓名的神秘牛友
04-30 11:43
春招失败、父母离婚,好像我的人生一团糟,一年来压力大到常常崩溃。不知道能跟谁聊,朋友其实对我非常好,但是她无意中表达出来的家庭幸福都会刺痛到我……和ai聊天,我的未来在更高处,不在楼下,忍不住爆哭😭
youngfa:害,妹妹,我是一个研究生(很上进很想找到好工作的那种),但去年因为生病回家休养错过了秋招(当时对我的冲击也是非常大的),这学期返校来了也是把论文盲审交了后才开始找工作,现在也是一个offer没有,但我就没有像你一样把这个阶段性的事情绑定到人生上,人生不仅很长,也很广阔,先停下来,放松一下哦。不要被外部环境灌输的思维操控了,好好爱自己!
点赞 评论 收藏
分享
03-19 10:07
已编辑
广东药科大学 golang
Yki_:你倒是进一个面啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务