欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

class08 mfy 递归记忆化&文件、scanf&printf

时间:2024-06-01 20:10 作者:admin 点击:
递归-记忆化 递归:规律,结束条件 f(n)=2*f(n-1)+f(n-2) n=1 f(1)=1 n=2 f(2)=2 int f(int n){ if(n=2) return n; return (2*f(n-1)+f(n-2))%32767; } int main(){ int n,k; cinn; while(n--){ cink; coutf(k)endl; } return 0; } 初步记忆

递归-记忆化

递归:规律,结束条件

f(n)=2*f(n-1)+f(n-2)

n=1 f(1)=1

n=2 f(2)=2


int f(int n){

   if(n<=2) return n;

   return (2*f(n-1)+f(n-2))%32767;

}

int main(){

   int n,k;

   cin>>n;

   while(n--){

       cin>>k;

       cout<<f(k)<<endl;

   }

   return 0;

}

初步记忆化

int nz[1000050]={0,1,2};

int f(int n){

   if(nz[n]!=0) return nz[n];

   if(n<=2) return n;

   nz[n]=(2*f(n-1)+f(n-2))%32767

   return nz[n];

}

熟练

int nz[1000050]={0,1,2};

int f(int n){

   if(nz[n]==0) nz[n]=f(n-1)*2+f(n-2);

   return nz[n];

}




1204,1205


当cin、cout次数频繁时(10w)

printf();

printf是c语言功能

string是c++语言类型

printf不能正常识别string,可以识别字符数组,符号为%s

输出字符串string,需要先变成c语言可以识别的内容【字符数组】

string->char*   c_str()

string s="我爱中国";

printf("%s",s.c_str());



scanf(); 格式化输入

输入门牌号,按照门牌号排序

a-3-205

b-1-101

scanf("%c-%d-%d",&a,&b,&c);//scanf 必须用&引入变量的地址才能正常存数据

输入一个ip地址

将ip地址的各个数字相加

1.1.1.1  4

192.168.0.1   361


输入两个数,输出他们的和

输入:1,3

输出:4



文件操作

int main(){

   freopen("文件名","r",stdin);//cin

   freopen("文件名","w",stdout);//cout



   fclose(stdin);

   fclose(stdout);

   return 0;

}


(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%