【十二题解】 | #杨辉三角的变形#

杨辉三角的变形

http://www.nowcoder.com/practice/8ef655edf42d4e08b44be4d777edbf43

用动态规划写完了发现是找规律的题,还是把代码发上来把,顺带问一句,如果用动态规划的话这道题是不是不能用一维数组

#include<stdio.h>

int main(){

 int number;
 while( scanf("%d", &number) != EOF){
       
 int all = number*2-1;
 int **dp = (int*)malloc(sizeof(int*)*number);
 for(int i=0; i<number; i++){
     dp[i] = (int*)malloc(sizeof(int)*all);
     memset(dp[i], 0, all*sizeof(int));
 }
 dp[0][all/2]=1;
 for(int i =1; i<number; i++){
     for(int j = 0; j<all; j++){
         if(j==0){
             dp[i][j]=dp[i-1][j]+dp[i-1][j+1];
         }
         else if(j==all-1){
             dp[i][j]=dp[i-1][j-1]+dp[i-1][j];
         }
         else{
             dp[i][j]=dp[i-1][j-1]+dp[i-1][j]+dp[i-1][j+1];
         }
    }
}
 int sign = 0;
 for(int i=0; i<all; i++){
     if(dp[number-1][i]%2==0){
         printf("%d\n", i+1);
         sign = 1;
         break;
     }
 }
 if(sign==0)printf("-1\n");
 }

} int main(){

int number;
while( scanf("%d", &number) != EOF){
    if(number<=2){
        printf("-1\n");
    }
    else{
        int x = (number-3)%4;
        switch(x){
            case 0:printf("2\n");
                break;
            case 1:printf("3\n");
                break;
             case 2:printf("2\n");
                break;
             case 3:printf("4\n");
                break;
        }
    }
}

}

全部评论

相关推荐

2025-11-12 14:30
已编辑
广东科技学院 前端工程师
迷茫的小刺猬在迎接o...:前端岗位越来越少了,中小厂也更倾向全栈了,更不需要初级或者实习。可能就大厂才会有一些岗位,但是很看学历。
实习,投递多份简历没人回...
点赞 评论 收藏
分享
2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务